حدد خيارات العرض عند التحويل إلى PDF
تنسيق PDF هو تنسيق صفحة ثابتة يحظى بشعبية كبيرة بين المستخدمين ويدعمه على نطاق واسع العديد من التطبيقات، لأن مستند PDF يبدو بنفس الشكل على أي جهاز. ولهذا السبب، يعد التحويل إلى PDF ميزة مهمة في Aspose.Words.
PDF هو تنسيق معقد. هناك حاجة إلى عدة مراحل من العمليات الحسابية في عملية تحويل مستند إلى PDF، بما في ذلك حساب التخطيط. وبما أن هذه المراحل تتضمن حسابات معقدة، فإنها تستغرق وقتا طويلا. كما أن تنسيق PDF معقد إلى حد ما في حد ذاته. يحتوي على بنية ملف محددة ونموذج رسومات وتضمين خط. علاوة على ذلك، فهو يتميز ببعض وظائف الإخراج المعقدة، مثل علامات بنية المستند، والتشفير، والتوقيعات الرقمية، والنماذج القابلة للتحرير.
يقلد محرك تخطيط Aspose.Words الطريقة التي يعمل بها محرك تخطيط الصفحة في Microsoft Word. ولذلك، فإن Aspose.Words يجعل مستندات إخراج PDF تبدو أقرب ما يمكن إلى ما يمكنك رؤيته في Microsoft Word. في بعض الأحيان يكون من الضروري تحديد خيارات إضافية، والتي يمكن أن تؤثر على نتيجة حفظ المستند بتنسيق PDF. يمكن تحديد هذه الخيارات باستخدام فئة PdfSaveOptions، التي تحتوي على الخصائص التي تحدد كيفية عرض مخرجات PDF.
بعض الأمثلة على استخدام PdfSaveOptions موضحة أدناه.
حاليًا، يمكنك الحفظ بتنسيقات PDF 1.7، وPDF 2.0، وPDF/A-1a، وPDF/A-1b، وPDF/A-2a، وPDF/A-2u، وPDF/UA-1. استخدم تعداد PdfCompliance لتعيين مستوى الامتثال لمعايير PDF. لاحظ أنه مع تنسيق PDF/A، يكون حجم ملف الإخراج أكبر من حجم ملف PDF العادي.
تم وضع علامة على PdfCompliance.PdfA1a وPdfCompliance.PdfA1b على أنهما قديمان.
لمزيد من المعلومات حول PDF/A، راجع المقالة التالية، “تعرف على ميزات التحويل إلى PDF/A”.
إنشاء مستند PDF بنماذج قابلة للتعبئة
من الممكن أيضًا تصدير النماذج القابلة للتعبئة من مستند Microsoft Word إلى ملف PDF الناتج، والذي يحتوي على نماذج قابلة للتعبئة بدلاً من النص العادي. استخدم خاصية PreserveFormFields لحفظ مستند بصيغة PDF مع نماذج قابلة للتعبئة.
لاحظ أنه على النقيض من Microsoft Word، فإن تنسيق PDF يحتوي على عدد محدود من الخيارات للنماذج القابلة للتحرير، مثل مربع النص ومربع التحرير والسرد ومربع الاختيار. يحتوي Microsoft Word على المزيد من أنواع النماذج، على سبيل المثال، منتقي تاريخ التقويم. بشكل عام، ليس من الممكن تقليد سلوك Microsoft Word بشكل كامل في PDF. ولذلك، في بعض الحالات المعقدة، قد يختلف إخراج PDF عما تراه في Microsoft Word.
يوضح مثال الكود أدناه كيفية حفظ مستند بصيغة PDF مع نماذج قابلة للتعبئة مع ضغط وجودة Jpeg محددة:
// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-.NET | |
Document doc = new Document(MyDir + "Rendering.docx"); | |
PdfSaveOptions saveOptions = new PdfSaveOptions | |
{ | |
ImageCompression = PdfImageCompression.Jpeg, PreserveFormFields = true | |
}; | |
doc.Save(ArtifactsDir + "WorkingWithPdfSaveOptions.PdfImageCompression.pdf", saveOptions); | |
PdfSaveOptions saveOptions17 = new PdfSaveOptions | |
{ | |
Compliance = PdfCompliance.Pdf17, | |
ImageCompression = PdfImageCompression.Jpeg, | |
JpegQuality = 100, // Use JPEG compression at 50% quality to reduce file size. | |
ImageColorSpaceExportMode = PdfImageColorSpaceExportMode.SimpleCmyk | |
}; | |
doc.Save(ArtifactsDir + "WorkingWithPdfSaveOptions.PdfImageCompression_17.pdf", saveOptions17); |
تصدير بنية المستند والخصائص المخصصة
تتيح لك خاصية [https://reference.aspose.com/words/ar/net/aspose.words. Saving/pdfsaveoptions/properties/exportdocumentstructure) تصدير بنية المستند إلى مخرجات PDF.
توفر مرافق البنية المنطقية لـ PDF آلية لدمج المعلومات المتعلقة ببنية محتوى المستند في ملف PDF. يحتفظ Aspose.Words بمعلومات حول البنية من مستند Microsoft Word، مثل الفقرات والقوائم والجداول والحواشي السفلية/التعليقات الختامية وما إلى ذلك.
يوضح المثال التالي كيفية حفظ مستند بتنسيق PDF، مع الحفاظ على بنية المستند:
// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-.NET | |
// Open a document | |
Document doc = new Document(dataDir + "Paragraphs.docx"); | |
// Create a PdfSaveOptions object and configure it to preserve the logical structure that's in the input document | |
// The file size will be increased and the structure will be visible in the "Content" navigation pane | |
// of Adobe Acrobat Pro, while editing the .pdf | |
PdfSaveOptions options = new PdfSaveOptions(); | |
options.ExportDocumentStructure = true; | |
doc.Save(dataDir + "PdfSaveOptions.ExportDocumentStructure.pdf", options); |
يسمح لك Aspose.Words أيضًا بتصدير خصائص المستند المخصصة إلى PDF، وهو ما يتضح من المثال التالي:
// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-.NET | |
// Open a document | |
Document doc = new Document(); | |
// Add a custom document property that doesn't use the name of some built in properties | |
doc.CustomDocumentProperties.Add("Company", "My value"); | |
// Configure the PdfSaveOptions like this will display the properties | |
// in the "Document Properties" menu of Adobe Acrobat Pro | |
PdfSaveOptions options = new PdfSaveOptions(); | |
options.CustomPropertiesExport = PdfCustomPropertiesExport.Standard; | |
doc.Save(dataDir + "PdfSaveOptions.CustomPropertiesExport.pdf", options); |
تصدير الخطوط العريضة من الإشارات المرجعية والعناوين في إخراج PDF
إذا كنت تريد تصدير الإشارات المرجعية كمخططات تفصيلية في ملف PDF الناتج، فيمكنك استخدام خاصية DefaultBookmarksOutlineLevel. تحدد هذه الخاصية المستوى الافتراضي في المخطط التفصيلي للمستند، والذي يتم فيه عرض إشارات Microsoft Word المرجعية. إذا كانت الوثيقة تحتوي على إشارات مرجعية في رأس/تذييل الوثيقة، فيمكنك تعيين خاصية HeaderFooterBookmarksExportMode إلى First أو All لتحديد كيفية تصديرها في ملف PDF الناتج. لا يتم تصدير الإشارات المرجعية الموجودة في الرؤوس/التذييلات عندما تكون قيمة HeaderFooterBookmarksExportMode هي None.
يوضح مثال الكود أدناه كيفية تصدير الإشارات المرجعية من الرأس/التذييل الأول للقسم:
يظهر أدناه ملف PDF الناتج لهذا المثال:
عند تعيين HeaderFooterBookmarksExportMode على First وكان المستند يحتوي على رؤوس/تذييلات فردية أو زوجية أو رأس/تذييل مختلف للصفحة الأولى، يتم تصدير الإشارات المرجعية للرؤوس/التذييلات الفريدة الأولى في القسم.
يمكنك أيضًا تصدير العناوين في ملف PDF الناتج، باستخدام خاصية HeadingsOutlineLevels. تحدد هذه الخاصية عدد مستويات العناوين المضمنة في المخطط التفصيلي للمستند.
يوضح مثال الكود أدناه كيفية تصدير العناوين بثلاثة مستويات:
// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-.NET | |
// Open a document | |
Document doc = new Document(dataDir + "Rendering.doc"); | |
PdfSaveOptions options = new PdfSaveOptions(); | |
options.OutlineOptions.HeadingsOutlineLevels = 3; | |
options.OutlineOptions.ExpandedOutlineLevels = 1; | |
doc.Save(dataDir + "Rendering.SaveToPdfWithOutline.pdf", options); |
تم توضيح ملف PDF الناتج لهذا المثال أدناه:
تقليص حجم الصور لتقليل حجم المستند
يوفر Aspose.Words القدرة على تقليل حجم الصور من أجل تقليل حجم ملف PDF الناتج، باستخدام خاصية DownsampleOptions. يتم تمكين الاختزال بشكل افتراضي في خاصية DownsampleImages.
لاحظ أنه من الممكن أيضًا تعيين دقة معينة في خاصية Resolution، أو حد دقة في خاصية ResolutionThreshold. في الحالة الثانية، إذا كانت دقة الصورة أقل من قيمة العتبة، فلن يتم تطبيق الاختزال.
يعرض مثال الكود أدناه كيفية تغيير دقة الصور في مستند PDF الناتج:
// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-.NET | |
// Open a document that contains images | |
Document doc = new Document(dataDir + "Rendering.doc"); | |
// If we want to convert the document to .pdf, we can use a SaveOptions implementation to customize the saving process | |
PdfSaveOptions options = new PdfSaveOptions(); | |
// We can set the output resolution to a different value | |
// The first two images in the input document will be affected by this | |
options.DownsampleOptions.Resolution = 36; | |
// We can set a minimum threshold for downsampling | |
// This value will prevent the second image in the input document from being downsampled | |
options.DownsampleOptions.ResolutionThreshold = 128; | |
doc.Save(dataDir + "PdfSaveOptions.DownsampleOptions.pdf", options); |
يتم حساب الدقة وفقًا لحجم الصورة الحقيقي على الصفحة.
تضمين الخطوط بتنسيق Adobe PDF
يمكّنك Aspose.Words أيضًا من التحكم في كيفية تضمين الخطوط في مستندات PDF الناتجة. يجب تضمين الخطوط في أي مستند Adobe PDF لضمان إمكانية عرض المستند بشكل صحيح على أي جهاز (راجع المزيد من التفاصيل حول عرض الخطوط في القسم استخدام خطوط تروتايب). افتراضيًا، يقوم Aspose.Words بتضمين مجموعة فرعية من الخطوط المستخدمة في المستند في ملف PDF الذي تم إنشاؤه. في هذه الحالة، يتم حفظ glyphs (الأحرف) المستخدمة في المستند فقط في PDF.
متى تستخدم الخطوط الكاملة ومتى تستخدم المجموعة الفرعية
توجد طريقة لتحديد خيار لـ Aspose.Words لتضمين الخطوط الكاملة. مزيد من التفاصيل، إلى جانب بعض المزايا والعيوب لكل إعداد موضحة في الجدول أدناه.
وضع الخطوط المضمنة | مزايا | سلبيات |
---|---|---|
Full |
يكون مفيدًا عندما تريد تحرير ملف PDF الناتج لاحقًا عن طريق إضافة النص أو تعديله. تم تضمين جميع الخطوط، وبالتالي فإن جميع ملفات glyph موجودة. | نظرًا لأن بعض الخطوط كبيرة الحجم (عدة ميغابايت)، فإن تضمينها بدون تعيين فرعي يمكن أن يؤدي إلى ملفات مخرجات كبيرة. |
Subset |
يعد الإعداد الفرعي مفيدًا إذا كنت تريد الاحتفاظ بحجم ملف الإخراج أصغر. | لا يمكن للمستخدم إضافة نص أو تحريره بالكامل باستخدام الخط الفرعي في مستند PDF الناتج. وذلك لأنه ليس كل ملفات glyph الخاصة بالخط موجودة. إذا تم حفظ ملفات PDF متعددة بخطوط فرعية وتم تجميعها معًا، فقد يحتوي مستند PDF المدمج على خط يحتوي على العديد من المجموعات الفرعية غير الضرورية. |
تضمين الخطوط الكاملة في PDF
تتيح لك خاصية EmbedFullFonts إمكانية تحديد كيفية قيام Aspose.Words بتضمين الخطوط في مستند PDF الناتج.
- لتضمين الخطوط الكاملة في مستند PDF الناتج، اضبط EmbedFullFonts على true
- لتعيين الخطوط فرعيًا عند الحفظ في ملف PDF، اضبط EmbedFullFonts على false
يوضح المثال التالي كيفية تضمين الخطوط الكاملة في مستند PDF الناتج:
// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-.NET | |
// Load the document to render. | |
Document doc = new Document(dataDir + "Rendering.doc"); | |
// Aspose.Words embeds full fonts by default when EmbedFullFonts is set to true. The property below can be changed | |
// Each time a document is rendered. | |
PdfSaveOptions options = new PdfSaveOptions(); | |
options.EmbedFullFonts = true; | |
string outPath = dataDir + "Rendering.EmbedFullFonts_out.pdf"; | |
// The output PDF will be embedded with all fonts found in the document. | |
doc.Save(outPath, options); |
يوضح المثال التالي كيفية ضبط Aspose.Words على الخطوط الفرعية في ملف PDF الناتج:
// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-.NET | |
// Load the document to render. | |
Document doc = new Document(dataDir + "Rendering.doc"); | |
// To subset fonts in the output PDF document, simply create new PdfSaveOptions and set EmbedFullFonts to false. | |
PdfSaveOptions options = new PdfSaveOptions(); | |
options.EmbedFullFonts = false; | |
dataDir = dataDir + "Rendering.SubsetFonts_out.pdf"; | |
// The output PDF will contain subsets of the fonts in the document. Only the glyphs used | |
// In the document are included in the PDF fonts. | |
doc.Save(dataDir, options); |
كيفية التحكم في تضمين الخطوط الأساسية وخطوط Windows القياسية
الخطوط الأساسية وخطوط Windows القياسية هي مجموعات الخطوط “القياسية”، والتي عادة ما تكون موجودة على الجهاز المستهدف أو يتم توفيرها بواسطة قارئ المستندات، وبالتالي لا يلزم تضمينها في ملف PDF الناتج. من خلال عدم تضمين هذه الخطوط، يمكنك تقليل حجم مستندات PDF المقدمة مع الحفاظ على إمكانية النقل.
يوفر Aspose.Words خيارات لاختيار كيفية تصدير الخطوط إلى PDF. يمكنك اختيار إما تضمين الخطوط الأساسية والقياسية في ملف PDF الناتج أو تخطي تضمينها واستخدام خطوط PDF الأساسية القياسية أو خطوط النظام على الجهاز المستهدف بدلاً من ذلك. يؤدي استخدام أي من هذه الخيارات عادةً إلى تقليل حجم الملف بشكل كبير لمستندات PDF التي يتم إنشاؤها بواسطة Aspose.Words.
- نظرًا لأن هذه الخيارات متنافية، يجب عليك اختيار خيار واحد فقط في كل مرة.
- عند الحفظ باستخدام التوافق مع PDF/A-1، يجب تضمين جميع الخطوط المستخدمة في مستند PDF. عند الحفظ باستخدام هذا التوافق، يجب تعيين خاصية UseCoreFonts على false ويجب تعيين خاصية FontEmbeddingMode على EmbedAll.
تضمين الخطوط الأساسية
يمكن تمكين أو تعطيل خيار تضمين الخطوط الأساسية باستخدام خاصية UseCoreFonts. عند تعيينه على true، لا يتم تضمين خطوط “True Type” الأكثر شيوعًا التالية (خطوط Base 14) في مستند PDF الناتج:
Arial
Times New Roman
Courier New
Symbol
يتم استبدال هذه الخطوط بخطوط Type 1 الأساسية المقابلة، والتي يوفرها القارئ عند فتح ملف PDF.
يوضح المثال الموضح أدناه كيفية ضبط Aspose.Words لتجنب تضمين الخطوط الأساسية والسماح للقارئ باستبدالها بخطوط PDF Type 1:
// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-.NET | |
// The path to the documents directory. | |
string dataDir = RunExamples.GetDataDir_RenderingAndPrinting(); | |
Document doc = new Document(dataDir + "Rendering.doc"); | |
// To disable embedding of core fonts and subsuite PDF type 1 fonts set UseCoreFonts to true. | |
PdfSaveOptions options = new PdfSaveOptions(); | |
options.UseCoreFonts = true; | |
string outPath = dataDir + "Rendering.DisableEmbedWindowsFonts_out.pdf"; | |
// The output PDF will not be embedded with core fonts such as Arial, Times New Roman etc. | |
doc.Save(outPath); |
نظرًا لأن برامج عرض PDF توفر خطوطًا أساسية على أي نظام أساسي مدعوم، فإن هذا الخيار يكون مفيدًا أيضًا عند الحاجة إلى إمكانية نقل أكبر للمستندات. ومع ذلك، قد تبدو الخطوط الأساسية مختلفة عن خطوط النظام.
تضمين خطوط النظام
يمكن تمكين هذا الخيار أو تعطيله باستخدام خاصية FontEmbeddingMode. عند تعيين هذه الخاصية إلى EmbedNonstandard، لا يتم تضمين خطوط نوع true “Arial” و"Times New Roman" في مستند PDF. في هذه الحالة، يعتمد عارض العميل على الخطوط المثبتة على نظام التشغيل الخاص بالعميل. عند تعيين خاصية FontEmbeddingMode إلى EmbedNone، لا يقوم Aspose.Words بتضمين أي خطوط.
يوضح المثال أدناه كيفية ضبط Aspose.Words لتخطي تضمين خطوط Arial وTimes New Roman في مستند PDF:
// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-.NET | |
// Load the document to render. | |
Document doc = new Document(dataDir + "Rendering.doc"); | |
// To disable embedding standard windows font use the PdfSaveOptions and set the EmbedStandardWindowsFonts property to false. | |
PdfSaveOptions options = new PdfSaveOptions(); | |
options.FontEmbeddingMode = PdfFontEmbeddingMode.EmbedNone; | |
// The output PDF will be saved without embedding standard windows fonts. | |
doc.Save(dataDir + "Rendering.DisableEmbedWindowsFonts.pdf"); |
يكون هذا الوضع مفيدًا للغاية عندما ترغب في عرض مستنداتك على نفس النظام الأساسي، مع الحفاظ على المظهر الدقيق للخطوط في ملف PDF الناتج.