การแปลง PS และ EPS
การแปลง PS และ EPS
PsDocument คือจุดเข้าในการอัตราบรรจุ PostScript (.ps) และ Encapsulated PostScript (.eps) ทั้งสองรูปแบบถูกจัดการโดยคลาสเดียวกันผ่านอินเตอร์เฟซเดียวกัน.
การอัตราค่า PS หรือ EPS File
การใช้งาน PsDocument.from_file() เพื่ออัตราการโหลดเอกสารจากเส้นทางไฟล์. is_eps อสังหาริมทรัพย์ แสดงว่าไฟล์ที่ถูกอัพโหลดเป็นไฟล EPS ไหม.
from aspose.page.ps.document import PsDocument
ps = PsDocument.from_file("document.ps")
eps = PsDocument.from_file("illustration.eps")
print("Is EPS:", eps.is_eps)เพื่อการโหลดจากบายต์ raw (เช่น การอัพโลอว์หรือเครือข่าย) ใช้ from_bytes():
with open(“document.ps”, “rb”) as f: data = f.read() doc = PsDocument.from_bytes(data)
---
### การส่งออกเป็น PDF
Call `to_pdf()` บนเครื่องบรรทุก `PsDocument` เพื่อการรับอาร์เรย์ไบต์ PDF. เขียนผล เพื่อดิสก์หรือคืนมันโดยตรงจากตัวจัดการ HTTP.
```python
from pathlib import Path
from aspose.page.ps.document import PsDocument
ps = PsDocument.from_file("input.ps")
pdf_bytes = ps.to_pdf()
Path("output.pdf").write_bytes(pdf_bytes)การส่งออกเป็น PNG หรือ JPEG
ผ่านการ ImageSaveOptions ตัวอย่างที่ to_image().ติดตั้ง format ไปยัง "png" หรือ "jpeg" และ dpi ความละเอียดที่ต้องการ.
from pathlib import Path
from aspose.page.ps.document import PsDocument
from aspose.page.ps.output import ImageSaveOptions
eps = PsDocument.from_file("illustration.eps")
opts = ImageSaveOptions(format="png", dpi=150)
Path("output.png").write_bytes(eps.to_image(opts))การอ่าน EPS DSC เมตาเดท่า
PsDocument.dsc กลับ a DscMetadata ตัวอย่างเมื่อ DSC หัวข้อความคิดเห็นมีอยู่ ใช้มันเพื่ออ่านกรอบเขต, ชื่อกระทู้ และสนามผู้สร้าง ก่อนการแปลง.
eps = PsDocument.from_file(“illustration.eps”) dsc = eps.dsc if dsc is not None: print(“Title:”, dsc.title) print(“Bounding box:”, dsc.bounding_box) print(“Creator:”, dsc.creator)
---
### เคล็ดลับและปฏิบัติที่ดีที่สุด
- การใช้งาน `from_bytes()` เมื่อประมวลผลการอัพโหลด เพื่อไม่ให้เขียนไฟล์ชั่วคราว.
- Check `is_eps` การทําสาขาล็อกิกเมื่อประมวลผลชุดผสมของ PS และ EPS ไฟล์.
- เซ็ต `dpi=150` หรือสูงกว่า สําหรับผลิตราสเตอร์ที่ใช้ในระบบการดูภาพล่วงหน้าของเอกสาร.
- วิธีการแปลงทั้งหมดคืน `bytes` เก็บหรือถ่ายทอดมันโดยไม่ต้องใช้ I/O ดิสก์ หากจําเป็น.
---
### ปัญหาทั่วไป
| Issue | Cause | แก้ไข |
| ----------------------- | ------------------------------------------ | --------------------------------------------------- |
| `FileNotFoundError` | เส้นทางผ่านไปยัง `from_file()` ไม่มีอยู่ | ยืนยันเส้นทางไฟล์ก่อนการโทร `from_file()` |
| การออก PDF ที่ว่างเปล่า | ไฟล์ PS ไม่มีเนื้อหาที่สามารถทําการแสดงได้ | ตรวจสอบแหล่ง PS ที่ขาดหายไป `showpage` ผู้ประกอบการ |
| ราสเตอร์ความละเอียดต่ํา | DPI โดยตั้งค่าคือ 96 | Pass `ImageSaveOptions(dpi=150)` หรือสูงกว่านั้น |
---
### FAQ
#### ผมสามารถแปลงไฟล์ EPS เป็น PDF ได้หรือไม่?
ใช่แล้ว. `PsDocument.from_file()` ยอมรับทั้งคู่ `.ps` และ `.eps` การขยาย. โทรหา `to_pdf()` ในเอกสารที่กลับเพื่อการรับข้อมูล PDF bytes.
#### การแปลงต้องการ Ghostscript ไหม?
ไม่ ห้องสมุดไม่มีการพึ่งพา Ghostscript หรือ runtime ของพื้นบ้านใดๆ.
#### ผมสามารถประมวลผลไฟล์ PS โดยไม่ต้องเขียนในดิสก์ได้หรือไม่?
ใช่ ใช้ `from_bytes()` เพื่อบรรทุกจาก a `bytes` เปิดเป้าหมายและใช้การกลับ `bytes` จาก `to_pdf()` หรือ `to_image()` โดยตรง ไม่จําเป็นต้องเขียนไฟล์ใด ๆ.
---
### คําอธิบายการพบบ่อย API
| ประเภท / กลไก | Description |
| ------------------------------ | ---------------------------------- |
| `PsDocument.from_file(path)` | การอัด PS หรือ EPS จากเส้นทางไฟล์ |
| `PsDocument.from_bytes(data)` | Load PS หรือ EPS จากบายต์ Raw |
| `PsDocument.to_pdf(options)` | การส่งออกเป็น PDF byte |
| `PsDocument.to_image(options)` | การส่งออกเป็นรูปราสเตอร์ bytes |
| `PsDocument.is_eps` | True หากไฟล์ที่อัพโหลดเป็น EPS |
| `PsDocument.dsc` | เมตาข้อมูลหัว DSC (ไฟล์ EPS) |
| `DscMetadata.bounding_box` | กล่องเขต EPS เป็น (x0, y0, x1, y1) |
| `DscMetadata.title` | ชื่อจากหัว EPS DSC |
| `ImageSaveOptions.format` | รูปแบบการออก: "png" หรือ "jpeg" |
| `ImageSaveOptions.dpi` | ความละเอียดการออกใน DPI |
## See Also
- [Aspose.Page — Enterprise Documentation](https://docs.aspose.com/page/)