Вказати параметри рендерингу при конвертації в PDF

Формат PDF є фіксованим форматом сторінок, який дуже популярний серед користувачів і широко підтримується різними додатками, тому що документ PDF виглядає таким же на будь-якому пристрої. З цієї причини конвертування в PDF є важливою особливістю Aspose.Wordsй

PDF – це комплексний формат. У процесі перетворення документа в PDF необхідно кілька етапів розрахунку. Оскільки ці етапи включають складні обчислення, вони трудомісткі. Також формат PDF досить складний самостійно. Має певну структуру файлів, модель графіки та монтаж шрифтів. Крім того, він містить деякі складні функції виведення даних, такі як теги структури документів, шифрування, цифрові підписи та редаговані форми.

Aspose.Words верстка двигуна імітує спосіб Microsoft Word’s page верстка двигуна працює. Отже, Aspose.Words Як можна знайти документи для виведення PDF Microsoft Wordй Іноді необхідно вказати додаткові параметри, які можуть вплинути на результат збереження документа в форматі PDF. Ці параметри можна вказати за допомогою використання PdfSaveOptions клас, що містить властивості, які визначають, як буде показано вихід PDF.

Деякі приклади використання PdfSaveOptions Надані нижче.

Створення 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/net/aspose.words.saving/pdfsaveoptions/properties/exportdocumentструктура) дозволяє експортувати структуру документа в 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й

Введіть номер мобільного, який Ви вказали при укладаннi договору з банком - для ідентифікації

// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-.NET
// The path to the documents directory.
Document doc = new Document(dataDir + "TestFile.docx");
PdfSaveOptions options = new PdfSaveOptions();
options.OutlineOptions.DefaultBookmarksOutlineLevel = 1;
options.HeaderFooterBookmarksExportMode = HeaderFooterBookmarksExportMode.First;
dataDir = dataDir + "ExportHeaderFooterBookmarks_out.pdf";
doc.Save(dataDir, options);

Вихід PDF цього прикладу показано нижче:

specify-rendering-options-when-converting-to-pdf_1

Коли 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 цього прикладу зображено нижче:

specify-rendering-options-when-converting-to-pdf_2

Перегляд зображень, щоб зменшити розмір документа

Aspose.Words забезпечує можливість знімання зображень, щоб зменшити розмір PDF, використовуючи DownsampleOptions майно. Downsampling включений за замовчуванням в 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);

Розраховується відповідно до реального розміру зображення на сторінці.

Вбудовані шрифти в форматі PDF

Aspose.Words також дозволяє контролювати, як вводяться шрифти у отримані документи PDF. Фонти повинні бути вбудовані в будь-який документ Adobe PDF, щоб переконатися, що документ можна правильно надати на будь-якій машині (див. інформацію про шрифт, що надає в розділі Використання Тип Шрифти). За замовчуванням, Aspose.Words поповнюється підмножиною шрифтів, що використовуються в документі у створеному PDF форматі. У цьому випадку тільки glyphs (characters) використовуються в документі зберігаються в PDF.

Коли використовувати Full Fonts і коли написати

Існує спосіб вказати варіант Aspose.Words щоб зібрати повно шрифти. Далі описані деталі, поряд з деякими перевагами і недоліками кожного налаштування в таблиці нижче.

Вбудований режим шрифтів Переваги Недоліки
Full Корисно, коли ви хочете редагувати отриманий PDF пізніше, додавши або змінивши текст. Всі шрифти включені, звідси всі glyphs присутні. Оскільки деякі шрифти є великими (середні мегабайти), вбудовування їх без підкатування може призвести до великих вихідних файлів.
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й

Вбудовані шрифти Core

Опція для складання шрифтів Core може бути включена або вимкнена, використовуючи UseCoreFonts майно. Коли він встановлюється true, Найпопулярніші шрифти “Вихідний тип” (Base 14 шрифтів) не вбудовані в вихідний документ PDF:

  • Arial
  • Times New Roman
  • Courier New
  • Symbol

Ці шрифти заміщені відповідним шрифтом Type 1, який надається зчитувачем при відкритті PDF.

Приклад наведено нижче показує, як встановити Aspose.Words щоб уникнути тиснення базових шрифтів і дати читачеві замінити їх PDF Тип 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 шрифти типу не вбудовані в документ PDF. У цьому випадку клієнт-переглядач спирається на шрифти, які встановлюються на операційній системі клієнта. Коли FontEmbeddingMode Зручності в готелі EmbedNone, Aspose.Words не вбудовуються шрифти.

Приклад нижче показує, як встановити Aspose.Words щоб пропустити вбудовування Аріал і 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.