การทํางานกับ PDF Writer

การทํางานกับ PDF Writer

การทํางานกับ PDF Writer

Aspose.Words FOSS for Python exports documents to PDF through a dedicated rendering pipeline. The pipeline converts each LDM element — paragraphs, runs, shapes, and tables — into PDF output using specialized renderers.


การส่งออก PDF เบื้องต้น

เก็บเอกสารที่อุดมใส่เป็น PDF โดยใช้ save() วิธีการ:

import aspose.words_foss as aw

doc = aw.Document("input.docx")
doc.save("output.pdf")

การกําหนดรูปแบบการบันทึกโดยอัตโนมัติจากขยายไฟล์. สําหรับการควบคุมอย่างชัดเจน, ใช้ SaveFormat:

doc = aw.Document(“input.doc”) doc.save(“output.pdf”, aw.SaveFormat.PDF)


---

### Using PdfSaveOptions

การตั้งค่าการออก PDF ด้วย `PdfSaveOptions`:

```python
import aspose.words_foss as aw
from aspose.words_foss.saving import PdfSaveOptions

doc = aw.Document("input.docx")
opts = PdfSaveOptions()
doc.save("output.pdf", opts)

PDF การทํารูปแบบ Pipeline

ผู้เขียน PDF ใช้ตัวทําการแสดงผลเฉพาะภายใน 4 ตัว:

RendererHandles
ParagraphRendererทําให้ข้อความ LDM เป็น PDF จัดการจัดสรร, ระยะห่าง, การลดลง
RunRendererการให้การออกแบบรัน ส่วนข้อความที่มีตัวอักษร, สี และลิ้ง
ShapeRendererทําให้รูปร่าง, รูปภาพ และองค์ประกอบที่ตั้งอยู่ได้
TableRendererการแสดงตาราง LDM ขอบเซลล์, การรวมและการพัด

เครื่องทําการแสดงผลเหล่านี้ทํางานร่วมกันเพื่อสร้าง PDF สุดท้าย คุณมีปฏิสัมพันธ์กับพวกเขาโดยทางไม่ตรงผ่าน Document.save().


การแปลงรูปแบบหลายรูปเป็น PDF

ผู้เขียน PDF จะรับการเข้าจากเครื่องอ่านที่สนับสนุนใด ๆ (DOCX, DOC, RTF, TXT, Markdown):

for input_file in [“report.docx”, “legacy.doc”, “notes.rtf”, “readme.txt”]: doc = aw.Document(input_file) pdf_name = input_file.rsplit(".", 1)[0] + “.pdf” doc.save(pdf_name) print(f"Saved {pdf_name}")


---

### เคล็ดลับและปฏิบัติที่ดีที่สุด

- การใช้งาน `PdfSaveOptions` เมื่อคุณต้องการปรับแต่งการออก PDF มากกว่าแบบตั้งค่า.
- สําหรับการแปลง Batch, Load and Save in a loop  เครื่องทําการแสดงไม่มีสถานะและสามารถใช้งานซ้ําได้ในเอกสารต่างๆ.
- ตัวเขียน PDF จะเก็บความเข้มข้น, รูปแบบอักษรทับถอย, การลดลาย, ขนาดตัวอักขระ และสีจากเอกสารแหล่ง.
- การรวมเซลล์ตาราง (`CellMerge`) ได้ถูกแสดงออกเป็น PDF ออกไปอย่างถูกต้อง.
- การทดสอบกับเอกสารตัวแทน ก่อนการนําไปใช้ในผลิต  แผนที่ซับซ้อนอาจต้องปรับเปลี่ยน.

---

### ปัญหาทั่วไป

| Issue              | Cause                                      | แก้ไข                                        |
| ------------------ | ------------------------------------------ | -------------------------------------------- |
| แฟนท์ต่างกันใน PDF | แฟนท์ไม่พร้อมในระบบ                        | ติดตั้งตัวอักษรที่ต้องการหรือใช้การแทนตัวแปล |
| ตารางที่ไม่ตรงกัน  | โครงสร้างโต๊ะที่ตั้งหอซับซ้อน              | การจัดตารางในเอกสารแหล่งง่ายขึ้น             |
| รูปภาพที่หายไป     | ข้อมูลภาพที่ไม่ได้ถูกนํามาใช้ในแหล่งข้อมูล | การันตีภาพที่ติดตั้ง, ไม่เชื่อมต่อภายนอก     |

---

### FAQ

#### รูปแบบการเข้าอะไรที่สามารถส่งออกเป็น PDF ได้?

DOCX, DO C, RTF, TXT และ Markdown ทั้งหมดสามารถอัตราการโหลดและบันทึกเป็น PDF.

#### เครื่องเขียน PDF รองรับหัวหน้าและตารางข้างล่าง?

หัวและหัวหน้าจากเอกสารแหล่งจะรวมอยู่ในผลิต PDF เมื่อมีใน LDM.

#### ผมสามารถควบคุมขนาดและแนวทางหน้า PDF ได้หรือไม่?

คุณสมบัติการตั้งหน้า (ขนาด, การทิศทาง, ขอบเขต) จากเอกสารแหล่งถูกรักษาไว้ใน PDF. Modify `PageSetup` ในวันที่ `Document` ส่วนก่อนการบันทึกเพื่อเปลี่ยนค่าเหล่านี้.

---

### คําอธิบายการพบบ่อย API

| ประเภท / กลไก         | Description                                          |
| --------------------- | ---------------------------------------------------- |
| `PdfSaveOptions`      | ตัวเลือกในการบันทึกเอกสารเป็น PDF                    |
| `ParagraphRenderer`   | ทําให้ข้อ LDM เป็น PDF                               |
| `RunRenderer`         | การให้การออกแบบรัน (ข้อความที่มีตัวอักษร, สี, ลิงค์) |
| `ShapeRenderer`       | ทําให้รูปร่าง, รูปภาพ และองค์ประกอบที่ตั้งอยู่ได้    |
| `TableRenderer`       | ทําการแสดงตาราง LDM เป็น PDF                         |
| `SaveFormat.PDF`      | เสมอสําหรับรูปแบบการบันทึก PDF                       |
| `Document.save(path)` | เก็บเอกสารในรูปแบบที่กําหนดไว้                       |

## See Also

- [Aspose.Words for Python — Enterprise Documentation](https://docs.aspose.com/words/python-net/)
 ภาษาไทย