อ้างอิงตัวเลือกการกำหนดค่า
อ้างอิงตัวเลือกการกำหนดค่า
การโหลด, การบันทึก, และการแปลงส่วนใหญ่ใน Aspose.PDF FOSS สำหรับ .NET ยอมรับ *Options อ็อบเจ็กต์ที่กำหนดค่าพฤติกรรมของการดำเนินการนั้น. LoadOptions and SaveOptions เป็นรากนามธรรมสองอันของตระกูลนี้: ตัวโหลดที่เจาะจงรูปแบบแต่ละตัว (HtmlLoadOptions, MdLoadOptions, TxtLoadOptions, SvgLoadOptions) สืบทอดจาก LoadOptions, และผู้เขียนที่เจาะจงรูปแบบแต่ละตัว (PdfSaveOptions, HtmlSaveOptions, SvgSaveOptions) สืบทอดจาก SaveOptions. หน้านี้อธิบายว่าตระกูลนี้เชื่อมต่อกันอย่างไรและบันทึกคลาสตัวเลือกที่ยังไม่ได้ครอบคลุมโดย การแปลงและการเพิ่มประสิทธิภาพ คู่มือ.
การโหลดเอกสารด้วย LoadOptions
แต่ละคลาสย่อยของ *LoadOptions จะใช้ WarningHandler, WarningHandlerName, DisableFontLicenseVerifications และ LoadFormat จากคลาสฐาน LoadOptions ร่วมกัน, จากนั้นจึงเพิ่มคุณสมบัติที่เฉพาะเจาะจงกับรูปแบบแหล่งที่มาของมัน.
// HTML: resolve relative images/CSS against a base path
var htmlOptions = new HtmlLoadOptions("assets/");
htmlOptions.IsEmbedFonts = true;
using var htmlDoc = new Document("input.html", htmlOptions);
// Markdown: apply custom CSS while rendering to PDF
var mdOptions = new MdLoadOptions();
mdOptions.CssStyles = "body { font-family: sans-serif; }";
using var mdDoc = new Document("input.md", mdOptions);
// Plain text: control the rendered font size
var txtOptions = new TxtLoadOptions();
txtOptions.FontSize = 11;
using var txtDoc = Document.Open("input.txt", txtOptions);
// SVG: let the page size follow the artwork dimensions
var svgOptions = new SvgLoadOptions();
svgOptions.AdjustPageSize = true;
using var svgDoc = new Document("input.svg", svgOptions);การบันทึกเป็น PDF ด้วย PdfSaveOptions
PdfSaveOptions ควบคุมการจัดการฟอนต์และตำแหน่งไฟล์ชั่วคราวเมื่อเขียน Document กลับออกเป็น PDF. มันสืบทอด CloseResponse, SaveFullPath, WarningHandler, CacheGlyphs และ SaveFormat จากฐาน SaveOptions ที่ใช้ร่วมกัน.
using var doc = Document.Open("input.pdf");
var pdfOptions = new PdfSaveOptions();
pdfOptions.DefaultFontName = "Arial";
pdfOptions.TempPath = "temp/";
doc.Save("output.pdf", pdfOptions);การส่งออกเป็น HTML และ SVG
HtmlSaveOptions และ SvgSaveOptions ทั้งสองสืบทอดมาจาก UnifiedSaveOptions. นอกเหนือจากการควบคุมรูปภาพ/ฟอนต์/เลย์เอาต์ที่อธิบายไว้ในคู่มือการแปลง, HtmlSaveOptions ยังให้คุณเลือกชนิดของเอกสารและกลยุทธ์การแบ่งหน้า, ในขณะที่ SvgSaveOptions พึ่งพาอย่างเต็มที่กับสมาชิกที่สืบทอดจาก SaveOptions/UnifiedSaveOptions members.
using var doc = Document.Open("input.pdf");
// Fixed-layout HTML5 output, split one file per page
var htmlOptions = new HtmlSaveOptions(HtmlDocumentType.Html5, fixedLayout: true);
htmlOptions.SplitIntoPages = true;
htmlOptions.ImageResolution = 150;
htmlOptions.Title = "Converted Document";
doc.Save("output.html", htmlOptions);
// SVG export configured through the shared SaveOptions members
var svgOptions = new SvgSaveOptions();
svgOptions.SaveFullPath = false;
doc.Save("output.svg", svgOptions);การแปลงขั้นตอนเดียวด้วย Document.Convert
Document.Convert ยอมรับ LoadOptions แหล่งและ SaveOptions ปลายทางร่วมกันในคำเรียกแบบสเตติกเดียว, ดังนั้นคุณสามารถแปลงระหว่างรูปแบบได้โดยไม่ต้องเปิด, แปลง, และทำลาย Document ด้วยตนเอง.
var loadOptions = new HtmlLoadOptions();
var saveOptions = new PdfSaveOptions();
Document.Convert("input.html", loadOptions, "output.pdf", saveOptions);ตัวเลือกการสกัดข้อความ
TextExtractionOptions ควบคุมวิธีที่ TextAbsorber (และ TextDevice) จัดรูปแบบข้อความที่สกัดออกมา, แยกจากว่าอะแบสอร์เบอร์หรือคลาสอุปกรณ์ใดทำการสกัด.
using var doc = Document.Open("input.pdf");
var extractionOptions = new TextExtractionOptions(TextFormattingMode.Raw);
extractionOptions.ScaleFactor = 1.0;
extractionOptions.IgnoreResourceFontErrors = true;
var absorber = new TextAbsorber(extractionOptions);
doc.Pages[1].Accept(absorber);
string text = absorber.Text;การเพิ่มประสิทธิภาพผลลัพธ์ด้วย OptimizationOptions
OptimizationOptions เป็นกลไกแยกจากกัน, ไม่ขึ้นกับรูปแบบ, สำหรับลดขนาดไฟล์. มันถูกนำไปใช้ผ่าน Document.OptimizeResources, ไม่ใช่ผ่านคลาส *SaveOptions, ดังนั้นจึงสามารถรวมกับเส้นทางการบันทึกใด ๆ ได้.
using var doc = Document.Open("input.pdf");
var optimizationOptions = new OptimizationOptions();
optimizationOptions.RemoveUnusedObjects = true;
optimizationOptions.CompressObjects = true;
optimizationOptions.SubsetFonts = true;
optimizationOptions.ImageCompressionOptions.CompressImages = true;
optimizationOptions.ImageCompressionOptions.ImageQuality = 80;
doc.OptimizeResources(optimizationOptions);
doc.Save("optimized.pdf");เคล็ดลับและแนวทางปฏิบัติที่ดีที่สุด
- ทุก
*LoadOptionsและ*SaveOptionssubclass จะสืบทอดWarningHandler/WarningHandlerName- ตั้งค่าทั้งสองร่วมกันเพื่อจับการวินิจฉัยที่สามารถกู้คืนได้. - ควรเลือกใช้อินสแตนซ์
*LoadOptions/*SaveOptionsที่เฉพาะเจาะจงตามรูปแบบ มากกว่าพึ่งพาการสรุปรูปแบบจากส่วนขยายไฟล์ โดยเฉพาะเมื่อทำงานกับสตรีมแทนเส้นทางไฟล์. - ใช้
Document.Convert(srcFileName, loadOptions, dstFileName, saveOptions)สำหรับการแปลงแบบครั้งเดียวแทนการเปิดและบันทึกใหม่ของDocumentด้วยตนเอง. OptimizationOptionsทำงานแยกจากตระกูล*SaveOptions- เรียกOptimizeResourcesก่อนSaveเพื่อย่อตัวออกผลลัพธ์ไม่ว่ารูปแบบเป้าหมายจะเป็นอะไร.- ใช้อินสแตนซ์ options เดียวซ้ำหลายเอกสารเมื่อการตั้งค่าเดียวกันใช้ได้ แทนการสร้างใหม่ทุกครั้ง.
ปัญหาทั่วไป
| ปัญหา | สาเหตุ | แก้ไข |
|---|---|---|
| เส้นทางภาพ/CSS แบบสัมพัทธ์ไม่ถูกแก้ไขเมื่อโหลด HTML | HtmlLoadOptions.BasePath ไม่เคยถูกตั้งค่า | ส่งค่า base path ผ่านคอนสตรัคเตอร์ HtmlLoadOptions(basePath) |
| สร้างรูปแบบผลลัพธ์ที่ไม่ถูกต้อง | พบการใช้ซับคลาส *SaveOptions หรือ SaveFormat ที่ไม่ตรงกับส่วนขยายเป้าหมาย | ใช้ซับคลาส *SaveOptions ที่ตรงกับรูปแบบปลายทาง |
OptimizeResources ไม่ลดขนาดไฟล์ | OptimizationOptions ถูกตั้งค่าเป็นค่าเริ่มต้นโดยไม่มีการเปิดใช้งานแฟล็กการลดขนาด | ตั้งค่า RemoveUnusedObjects, CompressObjects และ SubsetFonts อย่างชัดเจน |
| คำเตือนที่เกิดขึ้นระหว่างการโหลด/บันทึกจะถูกละเลยโดยไม่มีการแจ้ง | ตั้งค่า WarningHandler แต่ไม่ได้ระบุชื่อตัวจัดการ | ตั้งค่า WarningHandler และ WarningHandlerName พร้อมกัน |
FAQ
ความแตกต่างระหว่าง LoadOptions และ SaveOptions คืออะไร?
LoadOptions กำหนดวิธีการอ่านเอกสารจากรูปแบบแหล่งที่ไม่ใช่ PDF (HTML, Markdown, text, SVG); SaveOptions กำหนดวิธีการที่ Document จะถูกเขียนออกเป็นรูปแบบผลลัพธ์ (PDF, HTML, SVG). คลาสตัวเลือกที่เฉพาะเจาะจงตามรูปแบบแต่ละประเภทสืบทอดจากรากฐานหนึ่งในสองรากนี้เท่านั้น.
ฉันต้องระบุ LoadOptions เมื่อเปิด PDF ดั้งเดิมหรือไม่?
ไม่. Document.Open และคอนสตรัคเตอร์ของ Document ยอมรับเส้นทางไฟล์ธรรมดาหรือสตรีมสำหรับอินพุต PDF ดั้งเดิม. คลาสย่อยของ *LoadOptions จำเป็นเฉพาะเมื่อนำเข้ารูปแบบแหล่งที่ไม่ใช่ PDF เช่น HTML, Markdown, text หรือ SVG.
ฉันสามารถใช้ตัวอย่าง SaveOptions เดียวกันซ้ำหลายครั้งในการเรียก Save ได้หรือไม่?
ใช่. อินสแตนซ์ของตัวเลือกเป็นเพียงอ็อบเจกต์การกำหนดค่าธรรมดา; มันไม่มีสถานะเฉพาะเอกสาร, ดังนั้นอินสแตนซ์เดียวกันของ PdfSaveOptions หรือ HtmlSaveOptions สามารถส่งให้กับ Save สำหรับเอกสารหลายไฟล์ที่ใช้การตั้งค่าเดียวกันได้.
OptimizationOptions แตกต่างจากคลาส SaveOptions ที่เฉพาะเจาะจงตามรูปแบบอย่างไร?
OptimizationOptions ถูกใช้โดย Document.OptimizeResources, เป็นขั้นตอนแยกจากการบันทึก. มันลบอ็อบเจกต์/สตรีมที่ไม่ได้ใช้และบีบอัดภาพใหม่ในที่เดียว, และสามารถนำไปใช้ก่อนเรียก Save ด้วยคลาสย่อยใด ๆ ของ *SaveOptions.
รูปแบบแหล่ง/เป้าหมายแต่ละแบบมีทั้งคลาส LoadOptions และคลาส SaveOptions หรือไม่?
ไม่จำเป็นต้องสมมาตร ตัวอย่างเช่น Markdown และ plain text ปัจจุบันเปิดเผย MdLoadOptions/TxtLoadOptions สำหรับการนำเข้า แต่ไม่มีคู่ *SaveOptions ที่ตรงกัน ซึ่งสะท้อนทิศทางที่แต่ละรูปแบบรองรับการแปลง.
API Reference สรุป
| คลาส / เมธอด | คำอธิบาย |
|---|---|
LoadOptions | คลาสฐานสำหรับทุกประเภทของตัวเลือกการโหลดเอกสาร |
SaveOptions | คลาสฐานสำหรับทุกประเภทของตัวเลือกการบันทึกเอกสาร |
HtmlLoadOptions | ตัวเลือกสำหรับการนำเข้า HTML เป็นเอกสาร PDF |
MdLoadOptions | ตัวเลือกสำหรับการนำเข้า Markdown เป็นเอกสาร PDF |
TxtLoadOptions | ตัวเลือกสำหรับการนำเข้าข้อความธรรมดาเป็นเอกสาร PDF |
SvgLoadOptions | ตัวเลือกสำหรับการนำเข้า SVG เป็นเอกสาร PDF |
PdfSaveOptions | ตัวเลือกสำหรับการบันทึกเอกสารเป็น PDF |
HtmlSaveOptions | ตัวเลือกสำหรับการบันทึกเอกสารเป็น HTML |
SvgSaveOptions | ตัวเลือกสำหรับบันทึกเอกสารเป็น SVG |
UnifiedSaveOptions | ฐานที่ใช้ร่วมสำหรับ HtmlSaveOptions และ SvgSaveOptions |
Document.Convert | การแปลงแบบคงที่ขั้นตอนเดียวโดยใช้คู่ LoadOptions/SaveOptions |
TextExtractionOptions | การกำหนดค่าการจัดรูปแบบสำหรับการสกัดข้อความ TextAbsorber |
OptimizationOptions | การตั้งค่าการเพิ่มประสิทธิภาพขนาด/ทรัพยากรของเอกสารที่ไม่ขึ้นกับรูปแบบ |
Document.OptimizeResources | นำอินสแตนซ์ OptimizationOptions ไปใช้กับเอกสาร |