อ้างอิงตัวเลือกการกำหนดค่า

อ้างอิงตัวเลือกการกำหนดค่า

อ้างอิงตัวเลือกการกำหนดค่า

การโหลด, การบันทึก, และการแปลงส่วนใหญ่ใน 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 และ *SaveOptions subclass จะสืบทอด WarningHandler/WarningHandlerName - ตั้งค่าทั้งสองร่วมกันเพื่อจับการวินิจฉัยที่สามารถกู้คืนได้.
  • ควรเลือกใช้อินสแตนซ์ *LoadOptions/*SaveOptions ที่เฉพาะเจาะจงตามรูปแบบ มากกว่าพึ่งพาการสรุปรูปแบบจากส่วนขยายไฟล์ โดยเฉพาะเมื่อทำงานกับสตรีมแทนเส้นทางไฟล์.
  • ใช้ Document.Convert(srcFileName, loadOptions, dstFileName, saveOptions) สำหรับการแปลงแบบครั้งเดียวแทนการเปิดและบันทึกใหม่ของ Document ด้วยตนเอง.
  • OptimizationOptions ทำงานแยกจากตระกูล *SaveOptions - เรียก OptimizeResources ก่อน Save เพื่อย่อตัวออกผลลัพธ์ไม่ว่ารูปแบบเป้าหมายจะเป็นอะไร.
  • ใช้อินสแตนซ์ options เดียวซ้ำหลายเอกสารเมื่อการตั้งค่าเดียวกันใช้ได้ แทนการสร้างใหม่ทุกครั้ง.

ปัญหาทั่วไป

ปัญหาสาเหตุแก้ไข
เส้นทางภาพ/CSS แบบสัมพัทธ์ไม่ถูกแก้ไขเมื่อโหลด HTMLHtmlLoadOptions.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 ไปใช้กับเอกสาร

ดูเพิ่มเติม

 ภาษาไทย