Określ opcje renderowania podczas konwersji na PDF

Format PDF to format fixed-page, który jest bardzo popularny wśród użytkowników i szeroko wspierany przez różne aplikacje, ponieważ dokument PDF wygląda tak samo na dowolnym urządzeniu. Z tego powodu przekształcenie w PDF jest ważną cechą Aspose.Words.

PDF to skomplikowany format. W procesie konwersji dokumentu na PDF wymagane jest kilka etapów obliczeń, w tym obliczenia układu. Ponieważ etapy te obejmują skomplikowane obliczenia, są czasochłonne. Ponadto format PDF jest raczej złożony sam w sobie. Posiada specyficzną strukturę pliku, model graficzny i wbudowaną czcionkę. Ponadto posiada on pewną skomplikowaną funkcjonalność wyjściową, taką jak znaczniki struktury dokumentów, szyfrowanie, podpisy cyfrowe i edytowalne formularze.

Aspose.Words układ silnika imituje sposób Microsoft Wordukład strony działa. Dlatego też Aspose.Words sprawia, że dokumenty wyjściowe PDF wyglądają jak najbliżej tego, co można zobaczyć w Microsoft Word. Czasami konieczne jest określenie dodatkowych opcji, które mogą mieć wpływ na wynik zapisu dokumentu do formatu PDF. Opcje te można określić za pomocą PdfSaveOptions klasa, zawierająca właściwości określające sposób wyświetlania wyjścia PDF.

Przykłady stosowania PdfSaveOptions są przedstawione poniżej.

Tworzenie pliku PDF Dokument z formularzami wypełnialnymi

Można również eksportować wypełnialne formularze z Microsoft Word dokument do wyjścia PDF, który ma wypełnialne formy zamiast zwykłego tekstu. Użyj PreserveFormFields właściwość do zapisu dokumentu w formacie PDF z wypełnialnymi formularzami.

Należy zauważyć, że w przeciwieństwie do Microsoft Word", > format PDF ma ograniczoną liczbę opcji dla edytowalnych formularzy, takich jak textbox, combo box i opcja. Microsoft Word posiada więcej rodzajów formularzy, na przykład, znacznik daty kalendarza. Ogólnie rzecz biorąc, nie jest możliwe pełne naśladowanie Microsoft Word zachowanie w formacie PDF. Dlatego w niektórych złożonych przypadkach wyjście PDF może różnić się od tego, co widać w Microsoft Word.

Poniższy przykład kodu pokazuje, jak zapisać dokument w formacie PDF z wypełnialnymi formatami z określoną kompresją i jakością Jpeg:

// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Java
Document doc = new Document(dataDir + "SaveOptions.PdfImageCompression.rtf");
PdfSaveOptions options = new PdfSaveOptions();
options.setImageCompression(PdfImageCompression.JPEG);
options.setPreserveFormFields(true);
doc.save(dataDir + "SaveOptions.PdfImageCompression.pdf", options);
PdfSaveOptions options17 = new PdfSaveOptions();
options17.setCompliance(PdfCompliance.PDF_17);
options17.setImageCompression(PdfImageCompression.JPEG);
options17.setJpegQuality(100);// Use JPEG compression at 50% quality to reduce file size
options17.setImageColorSpaceExportMode(PdfImageColorSpaceExportMode.SIMPLE_CMYK);
doc.save(dataDir + "SaveOptions.PdfImageComppression_17.pdf", options17);

Eksportowanie struktury i właściwości dokumentu

W ExportDocumentStructure właściwość pozwala na eksport struktury dokumentu do wyjścia PDF.

Obiekty struktury logicznej PDF zapewniają mechanizm włączania informacji dotyczących struktury treści dokumentu do pliku PDF. Aspose.Words zachowuje informacje o strukturze z Microsoft Word dokument, taki jak paragrafy, listy, tabele, przypisy / noty końcowe itp.

Poniższy przykład pokazuje, jak zapisać dokument do formatu PDF, zachowując strukturę dokumentu:

// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Java
// For complete examples and data files, please go to //
// https://github.com/aspose-words/Aspose.Words-for-Java
// 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.setExportDocumentStructure(true);
doc.save(dataDir + "PdfSaveOptions.ExportDocumentStructure.pdf", options);

Aspose.Words pozwala również eksportować niestandardowe właściwości dokumentu do PDF, co pokazuje następujący przykład:

// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Java
// For complete examples and data files, please go to //
// https://github.com/aspose-words/Aspose.Words-for-Java
// Open a document
Document doc = new Document();
// Add a custom document property that doesn't use the name of some built in
// properties
doc.getCustomDocumentProperties().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.setCustomPropertiesExport(PdfCustomPropertiesExport.STANDARD);
doc.save(dataDir + "PdfSaveOptions.CustomPropertiesExport.pdf", options);

Eksportowanie Outlines z zakładek i nagłówków w formacie PDF

Jeśli chcesz eksportować zakładki w formacie PDF, możesz użyć DefaultBookmarksOutlineLevel nieruchomości. Ta właściwość określa domyślny poziom w zarysie dokumentu, na którym Microsoft Word są wyświetlane zakładki. Jeśli dokument zawiera zakładki w nagłówku / stopce dokumentu, można ustawić HeaderFooterBookmarksExportMode nieruchomości First lub All w celu określenia sposobu ich eksportu w formacie PDF. Zakładki w nagłówkach / stopkach nie są eksportowane, gdy wartość HeaderFooterBookmarksExportMode en None.

Poniższy przykład kodu pokazuje jak eksportować zakładki z pierwszego nagłówka / stopki sekcji:

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

Wyjście PDF tego przykładu jest pokazane poniżej:

rendering-options-when-converting-to-pdf-aspose-words-java-1

Kiedy HeaderFooterBookmarksExportMode jest ustawiony na First i dokument ma parzyste i nieparzyste nagłówki / stopy lub inne nagłówki / stopy pierwszej strony, zakładki są eksportowane dla pierwszych unikalnych nagłówków / stóp w sekcji.

Można również eksportować nagłówki w formacie PDF, używając HeadingsOutlineLevels nieruchomości. Ta właściwość określa, ile poziomów nagłówków znajduje się w zarysie dokumentu.

Poniższy przykład kodu pokazuje jak eksportować pozycje z trzema poziomami:

// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Java
// For complete examples and data files, please go to //
// https://github.com/aspose-words/Aspose.Words-for-Java
// Open a document
Document doc = new Document(dataDir + "Rendering.doc");
PdfSaveOptions options = new PdfSaveOptions();
options.getOutlineOptions().setHeadingsOutlineLevels(3);
options.getOutlineOptions().setExpandedOutlineLevels(1);
doc.save(dataDir + "Rendering.SaveToPdfWithOutline.pdf", options);

Wyjście PDF tego przykładu przedstawia się poniżej:

rendering-options-when-converting-to-pdf-aspose-words-java-2

Pobieranie próbek Obrazy do zmniejszenia rozmiaru dokumentu

Aspose.Words zapewnia możliwość pobierania próbek obrazów w celu zmniejszenia wielkości wyjścia PDF, za pomocą DownsampleOptions nieruchomości. Pobieranie próbek jest domyślnie włączone w DownsampleImages nieruchomości.

Należy zauważyć, że możliwe jest również ustalenie określonej rozdzielczości w Resolution nieruchomości lub progu restrukturyzacji i uporządkowanej likwidacji w ResolutionThreshold nieruchomości. W drugim przypadku, jeżeli rozdzielczość obrazu jest mniejsza niż wartość progowa, to pobieranie próbek w dół nie będzie miało zastosowania.

Poniższy przykład kodu pokazuje jak zmienić rozdzielczość obrazów w dokumencie PDF:

// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Java
// For complete examples and data files, please go to //
// https://github.com/aspose-words/Aspose.Words-for-Java
// Open a document
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.getDownsampleOptions().setResolution(36);
// We can set a minimum threshold for downsampling
// This value will prevent the second image in the input document from being
// downsampled
options.getDownsampleOptions().setResolutionThreshold(128);
doc.save(dataDir + "PdfSaveOptions.DownsampleOptions.pdf", options);

Rozdzielczość jest obliczana według rzeczywistego rozmiaru obrazu na stronie.

Wszywanie Czcionki w Adobe PDF Format

Aspose.Words pozwala również kontrolować sposób osadzania czcionek w dokumentach PDF. Czcionki muszą być wbudowane w dowolny dokument Adobe PDF w celu zapewnienia, że dokument może być prawidłowo renderowany na dowolnej maszynie (więcej szczegółów dotyczących renderowania czcionki w sekcji Korzystanie z True Czcionki typu). Domyślnie, Aspose.Words osadza podzbiór czcionek używanych w dokumencie w wygenerowanym formacie PDF. W tym przypadku, tylko glyphs (znaki) używane w dokumencie są zapisywane w formacie PDF.

Kiedy używać pełnych czcionek i kiedy podłączyć

Istnieje sposób na określenie opcji dla Aspose.Words aby osadzić pełne czcionki. Dalsze szczegóły wraz z pewnymi zaletami i wadami każdego ustawienia opisano w poniższej tabeli.

Zamieść tryb czcionek Korzyści Uszkodzenia
Full Przydatne, gdy chcesz edytować otrzymany PDF później, dodając lub modyfikując tekst. Wszystkie czcionki są włączone, stąd wszystkie glyphs są obecne. Ponieważ niektóre czcionki są duże (kilka megabajtów), osadzanie ich bez zastępowania może skutkować dużymi plikami wyjściowymi.
Subset Subsetting jest przydatny, jeśli chcesz zmniejszyć rozmiar pliku wyjściowego.

Użytkownik nie może w pełni dodać lub edytować tekstu używając poddanej czcionki w dokumencie PDF. To dlatego, że nie wszystkie glyphs czcionki są obecne.

Jeżeli wiele plików PDF jest zapisywanych z podsetowanymi czcionkami i połączonych razem, to łączony dokument PDF może mieć czcionkę zawierającą wiele niepotrzebnych podzbiorów.

|

Wkrywanie pełnych fontów w formacie PDF

W EmbedFullFonts właściwość pozwala określić jak Aspose.Words osadza czcionki w formacie PDF.

  • Aby umieścić pełne czcionki w dokumencie wyjścia PDF, ustawić EmbedFullFonts do true
  • Aby podłączyć czcionki podczas zapisywania do PDF, ustaw EmbedFullFonts do false

Poniższy przykład pokazuje jak osadzić pełne czcionki w dokumencie wyjścia PDF:

// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Java
// Open a Document
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.setEmbedFullFonts(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);

Poniższy przykład pokazuje jak ustawić Aspose.Words do podzlecania czcionek w formacie PDF:

// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Java
// Open a Document
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.setEmbedFullFonts(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);

Jak kontrolować osadzanie podstawowych fontów i Windows Czcionki standardowe

Czcionki bazowe oraz Windows Czcionki standardowe to “standardowe” zestawy czcionek, które są zazwyczaj obecne na maszynie docelowej lub dostarczane przez czytnik dokumentów, dlatego nie muszą być wbudowane w wyjście PDF. Nie osadzając tych czcionek, możesz zmniejszyć rozmiar renderowanych dokumentów PDF i utrzymać możliwość przenoszenia.

Aspose.Words oferuje opcje wyboru sposobu eksportu czcionek do PDF. Można wybrać albo umieścić core i standardowe czcionki do wyjścia PDF lub pominąć osadzanie ich i używać standardowych core PDF czcionki lub czcionki systemowe na maszyny docelowej zamiast. Korzystanie z jednej z tych opcji zazwyczaj powoduje znaczne zmniejszenie rozmiaru pliku dla dokumentów PDF generowanych przez Aspose.Words.

  • Ponieważ opcje te wzajemnie się wykluczają, należy wybrać tylko jeden na raz.
  • Podczas zapisywania przy zgodności PDF / A-1 wszystkie używane czcionki muszą być wbudowane w dokument PDF. Podczas oszczędzania z tej zgodności, UseCoreFonts nieruchomość musi być ustawiona na false oraz FontEmbeddingMode nieruchomość musi być ustawiona na EmbedAll.

Osadzanie fontów podstawowych

Opcja osadzania czcionek core może być włączona lub wyłączona za pomocą UseCoreFonts nieruchomości. Kiedy jest ustawiony true, następujące najpopularniejsze czcionki “True Type” (Czcionki bazowe 14) nie są osadzone w dokumencie wyjściowym PDF:

  • Arial
  • Times New Roman
  • Courier New
  • Symbol

Czcionki te zastępuje się odpowiadającymi im podstawowymi czcionkami typu 1, które są dostarczane przez czytelnika po otwarciu PDF.

Przykład podany poniżej pokazuje jak ustawić Aspose.Words aby uniknąć osadzania podstawowych czcionek i pozwolić czytelnikowi zastąpić je PDF Czcionki typu 1:

// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Java
// Open a Document
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.setUseCoreFonts(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);

Ponieważ widzowie PDF udostępniają podstawowe czcionki na każdej obsługiwanej platformie, opcja ta jest również przydatna, gdy wymagana jest większa przenośność dokumentów. Czcionki rdzeniowe mogą jednak wyglądać inaczej niż czcionki systemowe.

System wbudowany Czcionki

Ta opcja może być włączona lub wyłączona za pomocą FontEmbeddingMode nieruchomości. Kiedy ta właściwość jest ustawiona na EmbedNonstandard, “Arial” i “Times New Roman” true czcionki typu nie są wbudowane w dokument PDF. W tym przypadku przeglądarka klienta opiera się na czcionkach zainstalowanych w systemie operacyjnym klienta. Kiedy FontEmbeddingMode właściwość jest ustawiona na EmbedNone, Aspose.Words nie osadzać żadnych czcionek.

Poniższy przykład pokazuje jak ustawić Aspose.Words aby pominąć umieszczanie czcionek Arial i Times New Roman w dokumencie PDF:

// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Java
// Open a Document
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.setFontEmbeddingMode(PdfFontEmbeddingMode.EMBED_NONE);
// The output PDF will be saved without embedding standard windows fonts.
doc.save(dataDir + "Rendering.DisableEmbedWindowsFonts.pdf");

Tryb ten jest najbardziej przydatny, gdy chcesz zobaczyć swoje dokumenty na tej samej platformie, zachowując dokładny wygląd czcionek w wyjściu PDF.