การทํา Barcode
การทํา Barcode
Aspose.BarCode FOSS for Python separates encoding from rendering. After a barcode is encoded into an EncodedSymbol, a Renderer การดําเนินการแปลงเมทริกซ์โมดูลเป็นผลิตทางวิจารณ์. ห้องสมุดรวม SvgRenderer และ PngRenderer.
RenderOptions
RenderOptions ควบคุมผลิตภาพของเครื่อง render ทุกตัว. ส่งมันไปยัง to_svg() หรือ to_png() ในทุก ๆ ครั้ง Barcode วัตถุประกอบ:
import aspose_barcode_foss as barcode
from aspose_barcode_foss import RenderOptions
bc = barcode.code128("Hello World")
svg = bc.to_svg(options=RenderOptions(
scale=2.0,
foreground_color="#003366",
quiet_zone=10.0,
show_text=True,
))| Property | Type | Description |
|---|---|---|
scale | float | เครื่องคูณขนาดแบบเดียวกันสําหรับบาร์โค้ดทั้งหมด |
dpi | int | ความละเอียดสําหรับการออก PNG (ไม่มีผลต่อ SVG) |
module_width | float | ความกว้างของโมดูลบาร์โค้ดหนึ่งในหน่วยผู้ใช้ |
module_height | float | ความสูงของโมดูล barcode หนึ่งในหน่วยผู้ใช้ |
quiet_zone | float | การปรับพื้นที่ขาวรอบบาร์โค้ด |
foreground_color | str | สี Hex สําหรับบาร์และโมดูล (เช่น., "#000000") |
background_color | str | สี Hex สําหรับพื้นหลัง |
transparent_background | bool | แผนหลังโปร่งใสสําหรับการออก PNG |
show_text | bool | แสดงข้อความที่อ่านได้ภายใต้บาร์โค้ด |
font_family | str | แฟนต์สําหรับข้อความที่สามารถอ่านได้โดยมนุษย์ |
font_size | float | ขนาดตัวอักษรสําหรับข้อความที่สามารถอ่านได้โดยมนุษย์ |
ResolvedRenderOptions
ResolvedRenderOptions คือการประกอบแบบรวมอย่างเต็มที่ ที่ผลิตโดย OptionsResolver.resolve().มันรวมข้อมูลจากผู้ใช้งาน RenderOptions กับการ SymbologyProfile คุณสมบัติทั้งหมดมีค่าตัวจริง (ไม่มี) None).
การ Barcode.default_render_options อสังหาริมทรัพย์ถือของ RenderOptions ผ่านไปในช่วงรุ่น (หรือ None ถ้าไม่ได้จัดส่ง).
การออก SVG
SvgRenderer สร้างการออก SVG. เรียก to_svg() ใน a Barcode วัตถุประกอบ:
bc = barcode.ean13("590123412345")
svg_string = bc.to_svg()
# With custom options
svg_custom = bc.to_svg(options=RenderOptions(
scale=3.0,
foreground_color="#1a1a1a",
show_text=True,
font_family="Helvetica",
font_size=12.0,
))
with open("ean13.svg", "w") as f:
f.write(svg_custom)to_svg() กลับ a str ซึ่งมีเอกสาร SVG ทั้งหมด.
การออก PNG
PngRenderer ส่งผลการออก PNG. โทรหา to_png() ใน a Barcode วัตถุประกอบ:
bc = barcode.qr("https://example.com")
png_bytes = bc.to_png()
# With custom options
png_custom = bc.to_png(options=RenderOptions(
scale=4.0,
dpi=300,
transparent_background=True,
))
with open("qr.png", "wb") as f:
f.write(png_custom)to_png() การคืนสินค้า bytes ซึ่งมีข้อมูลภาพ PNG.
การแสดงแบบขัดแย้ง
การ Renderer abstract base class กําหนดอัตราสัมผัสสําหรับการแสดงผลทั้งหมด:
class Renderer(ABC):
def render(self, symbol, layout, options) -> RenderedArtifact: ...SvgRenderer และ PngRenderer ทั้งสองนําเข้าใช้งานอินเตอร์เฟสนี้ คุณสามารถโทรหา Barcode.render(renderer, options) ใช้ตัวทําการแสดงผลเฉพาะอย่างต่อตรง:
from aspose_barcode_foss import SvgRenderer, RenderOptions
bc = barcode.code128("DATA")
artifact = bc.render(SvgRenderer(), RenderOptions(scale=2.0))
print(artifact.media_type) # "image/svg+xml"
print(type(artifact.data)) # <class 'str'>RenderedArtifact
การ RenderedArtifact กลับโดย Renderer.render() มี:
| Property | Type | Description |
|---|---|---|
data | `str | bytes` |
media_type | str | ประเภท MIME ("image/svg+xml" หรือ "image/png") |
backend | str | ตัวรับประจําตัวของผู้ให้การแสดงภาพ |
การจัดทําข้อความ
ทุกปัญลักษณ์มี TextLayoutPolicy ซึ่งกําหนดการที่ข้อความสามารถอ่านได้ถูกวางอยู่ใต้บาร์โค้ด create_layout(symbol, options) วิธีการคืน a TextLayout มีสารประกอบด้วย TextSegment อัตถุที่มีตําแหน่งและข้อมูลข้อความ.
การใช้ QR Code QrTextLayoutPolicy, ซึ่งให้การวางแผนที่ไม่มี (รหัส QR ไม่แสดงข้อความอ่านได้ของมนุษย์).
เคล็ดลับและปฏิบัติที่ดีที่สุด
- การใช้งาน
scaleสําหรับการจัดขนาดแบบเดียวกัน และmodule_width/module_heightสําหรับการควบคุมขนาดอย่างแม่นยํา ไม่รวมทั้งคู่. - เซ็ต
dpi=300สําหรับการออก PNG ที่มีคุณภาพพิมพ์ โดยตั้งค่าเป็นความละเอียดของจอ. - การใช้งาน
transparent_background=Trueสําหรับบาร์โค้ด PNG ที่จะติดบนพื้นหลังสีสัน. foreground_colorและbackground_colorรับรองรหัสสี hex มาตรฐาน ("#RRGGBB").- การออก SVG ไม่ต้องใช้ความละเอียด ชอบการใส่ SVg สําหรับเว็บและ PDF.
ปัญหาทั่วไป
| Issue | Cause | แก้ไข |
|---|---|---|
| PNG ดูเล็กเกินไป | ระดับที่กําหนดเป็น 1.0 | Increase scale หรือชุด dpi |
| ข้อความไม่เห็น | show_text การผิดพลาดในการ False | เซ็ต show_text=True |
| รหัส QR ไม่มีข้อความ | สัญลักษณ์ QR ไม่รองรับข้อความที่อ่านได้โดยมนุษย์ | พฤติกรรมที่คาดหวัง QR ใช้การวางแผนข้อความไม่มี op |
| สีไม่ใช้ | ชื่อที่ดินถูกเขียนผิดคํา | ใช้ชื่อของสมบัติที่ถูกต้อง: foreground_color, background_color |