Преобразовать документ в PDF

Возможность легко и надежно конвертировать документы из одного формата в другой является ключевой особенностью Aspose.Words. Одним из самых популярных форматов для конвертации является PDF – формат с фиксированной компоновкой, который сохраняет первоначальный вид документа при его отображении на различных платформах. Термин “рендеринг” используется в Aspose.Words для описания процесса преобразования документа в формат файла, который разбит на страницы или имеет концепцию страниц.

Преобразовать документ Word в PDF

Преобразование из Word в PDF - довольно сложный процесс, требующий нескольких этапов расчета. Механизм верстки Aspose.Words имитирует работу механизма верстки страниц Microsoft Word, благодаря чему выходные документы PDF выглядят как можно ближе к тому, что вы можете увидеть в Microsoft Word.

С помощью Aspose.Words вы можете программно преобразовать документ из форматов Word, таких как DOC или DOCX, в PDF, не используя Microsoft Office. В этой статье объясняется, как выполнить это преобразование.

Преобразовать DOC или DOCX в PDF

Преобразование из формата документа DOC или DOCX в формат документа PDF в Aspose.Words очень просто и может быть выполнено всего с помощью двух строк кода, которые:

  1. Загрузите ваш документ в объект Document, используя один из его конструкторов, указав имя документа с расширением его формата.
  2. Вызовите один из методов Document.save для объекта Document и укажите желаемый выходной формат как PDF, введя имя файла с расширением “.PDF”.

В следующем примере кода показано, как преобразовать документ из DOCX в PDF с помощью метода save:

# For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Python-via-.NET.git.
doc = aw.Document(MY_DIR + "Document.docx")
doc.save(ARTIFACTS_DIR + "BaseConversions.docx_to_pdf.pdf")
view raw docx-to-pdf.py hosted with ❤ by GitHub

Вы можете скачать файл шаблона для этого примера с сайта Aspose.Words GitHub.

Преобразование в различные PDF стандарты

Aspose.Words предоставляет перечисление PdfCompliace для поддержки преобразования DOC или DOCX в различные стандарты формата PDF (такие как PDF 1.7, PDF 1.5, и т.д.).

Следующий пример кода демонстрирует, как преобразовать документ в PDF 1.7, используя PdfSaveOptions с соблюдением PDF17:

# For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Python-via-.NET.git.
doc = aw.Document(MY_DIR + "Rendering.docx")
save_options = aw.saving.PdfSaveOptions()
save_options.compliance = aw.saving.PdfCompliance.PDF17
doc.save(ARTIFACTS_DIR + "WorkingWithPdfSaveOptions.conversion_to_pdf_17.pdf", save_options)

Преобразование изображений в PDF

Преобразование в PDF не ограничено форматами документов Microsoft Word. Любой формат, поддерживаемый Aspose.Words, включая программно созданный, также может быть преобразован в PDF. Например, мы можем преобразовать одностраничные изображения, такие как JPEG, PNG, BMP, EMF, или WMF, а также многостраничные изображения, такие как TIFF и GIF, в PDF.

В следующем примере кода показано, как преобразовать изображения JPEG и TIFF в PDF:

# For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Python-via-.NET.git.
self.convert_image_to_pdf(IMAGES_DIR + "Logo.jpg",
ARTIFACTS_DIR + "BaseConversions.JpgToPdf.pdf")
self.convert_image_to_pdf(IMAGES_DIR + "Transparent background logo.png",
ARTIFACTS_DIR + "BaseConversions.PngToPdf.pdf")
self.convert_image_to_pdf(IMAGES_DIR + "Windows MetaFile.wmf",
ARTIFACTS_DIR + "BaseConversions.WmfToPdf.pdf")
self.convert_image_to_pdf(IMAGES_DIR + "Tagged Image File Format.tiff",
ARTIFACTS_DIR + "BaseConversions.TiffToPdf.pdf")
self.convert_image_to_pdf(IMAGES_DIR + "Graphics Interchange Format.gif",
ARTIFACTS_DIR + "BaseConversions.GifToPdf.pdf")
view raw image-to-pdf.py hosted with ❤ by GitHub
# For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Python-via-.NET.git.
@staticmethod
def convert_image_to_pdf(input_file_name: str, output_file_name: str):
"""Converts an image to PDF using Aspose.Words for .NET.
:param input_file_name: File name of input image file.
:param output_file_name: Output PDF file name.
"""
print("Converting " + input_file_name + " to PDF...")
doc = aw.Document()
builder = aw.DocumentBuilder(doc)
# Read the image from file
with drawing.Image.from_file(input_file_name) as image:
# Find which dimension the frames in this image represent. For example
# the frames of a BMP or TIFF are "page dimension" whereas frames of a GIF image are "time dimension".
dimension = drawing.imaging.FrameDimension(image.frame_dimensions_list[0])
frames_count = image.get_frame_count(dimension)
for frame_idx in range(frames_count):
# Insert a section break before each new page, in case of a multi-frame TIFF.
if frame_idx != 0:
builder.insert_break(aw.BreakType.SECTION_BREAK_NEW_PAGE)
image.select_active_frame(dimension, frame_idx)
frame_stream = io.BytesIO()
image.save(frame_stream, drawing.imaging.ImageFormat.png)
# We want the size of the page to be the same as the size of the image.
# Convert pixels to points to size the page to the actual image size.
page_setup = builder.page_setup
page_setup.page_width = aw.ConvertUtil.pixel_to_point(image.width, image.horizontal_resolution)
page_setup.page_height = aw.ConvertUtil.pixel_to_point(image.height, image.vertical_resolution)
# Insert the image into the document and position it at the top left corner of the page.
builder.insert_image(
frame_stream,
aw.drawing.RelativeHorizontalPosition.PAGE,
0,
aw.drawing.RelativeVerticalPosition.PAGE,
0,
page_setup.page_width,
page_setup.page_height,
aw.drawing.WrapType.NONE)
doc.save(output_file_name)

Чтобы заставить этот код работать, вам нужно добавить ссылки на Aspose.Words и aspose.pydrawing в ваш проект.

Уменьшить размер выходных данных PDF

При сохранении в PDF вы можете указать, хотите ли вы оптимизировать выходные данные. Для этого вам нужно установить флаг optimize_output в значение true, и тогда избыточные вложенные холсты и пустые холсты будут удалены, соседние глифы с одинаковым форматированием будут объединены.

# For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Python-via-.NET.git.
doc = aw.Document(MY_DIR + "Rendering.docx")
save_options = aw.saving.PdfSaveOptions()
save_options.optimize_output = True
doc.save(ARTIFACTS_DIR + "PdfSaveOptions.OptimizeOutput.pdf", save_options)

Уменьшить размер выходных данных PDF

При сохранении в PDF вы можете указать, хотите ли вы оптимизировать выходные данные. Для этого вам нужно установить флаг optimize_output в значение true, и тогда избыточные вложенные холсты и пустые холсты будут удалены, соседние глифы с одинаковым форматированием будут объединены.

Смотрите также