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

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

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

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

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

Преобразование DOCX или DOC в 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-C.git.
auto doc = MakeObject<Document>(MyDir + u"Document.docx");
doc->Save(ArtifactsDir + u"BaseConversions.DocxToPdf.pdf");
view raw docx-to-pdf.h 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-C.git.
auto doc = MakeObject<Document>(MyDir + u"Rendering.docx");
auto saveOptions = MakeObject<PdfSaveOptions>();
saveOptions->set_Compliance(PdfCompliance::Pdf17);
doc->Save(ArtifactsDir + u"WorkingWithPdfSaveOptions.ConversionToPdf17.pdf", saveOptions);

Преобразование изображений в 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-C.git.
ConvertImageToPdf(ImagesDir + u"Logo.jpg", ArtifactsDir + u"BaseConversions.JpgToPdf.pdf");
ConvertImageToPdf(ImagesDir + u"Transparent background logo.png", ArtifactsDir + u"BaseConversions.PngToPdf.pdf");
ConvertImageToPdf(ImagesDir + u"Windows MetaFile.wmf", ArtifactsDir + u"BaseConversions.WmfToPdf.pdf");
ConvertImageToPdf(ImagesDir + u"Tagged Image File Format.tiff", ArtifactsDir + u"BaseConversions.TiffToPdf.pdf");
ConvertImageToPdf(ImagesDir + u"Graphics Interchange Format.gif", ArtifactsDir + u"BaseConversions.GifToPdf.pdf");
view raw image-to-pdf.h hosted with ❤ by GitHub
// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-C.git.
/// <summary>
/// Converts an image to PDF using Aspose.Words for .NET.
/// </summary>
/// <param name="inputFileName">File name of input image file.</param>
/// <param name="outputFileName">Output PDF file name.</param>
void ConvertImageToPdf(String inputFileName, String outputFileName)
{
std::cout << (String(u"Converting ") + inputFileName + u" to PDF ....") << std::endl;
auto doc = MakeObject<Document>();
auto builder = MakeObject<DocumentBuilder>(doc);
// Read the image from file, ensure it is disposed.
{
SharedPtr<System::Drawing::Image> image = System::Drawing::Image::FromFile(inputFileName);
// Insert a section break before each new page, in case of a multi-frame TIFF.
builder->InsertBreak(BreakType::SectionBreakNewPage);
// 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.
SharedPtr<PageSetup> ps = builder->get_PageSetup();
ps->set_PageWidth(ConvertUtil::PixelToPoint(image->get_Width(), image->get_HorizontalResolution()));
ps->set_PageHeight(ConvertUtil::PixelToPoint(image->get_Height(), image->get_VerticalResolution()));
// Insert the image into the document and position it at the top left corner of the page.
builder->InsertImage(image, RelativeHorizontalPosition::Page, 0, RelativeVerticalPosition::Page, 0, ps->get_PageWidth(), ps->get_PageHeight(), WrapType::None);
}
doc->Save(outputFileName);
}

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

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