Преобразование документа в формат 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 очень простое и может быть выполнено всего с помощью двух строк кода, которые:
- Загрузите ваш документ в объект Document, используя один из его конструкторов, указав имя документа с расширением его формата.
- Вызовите один из методов 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"); |
Вы можете загрузить файл шаблона для этого примера с Aspose.Words GitHub.
Иногда необходимо указать дополнительные параметры, которые могут повлиять на результат сохранения документа в формате PDF. Эти параметры можно задать с помощью класса PdfSaveOptions, содержащего свойства, которые определяют, как будет отображаться вывод в формате PDF.
Обратите внимание, что с помощью того же метода вы можете преобразовать любой документ в формате flow-layout в формат PDF.
Преобразование в другие стандарты 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"); |
// 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
в ваш проект.
Смотрите также
- Статья Визуализация для получения дополнительной информации о форматах фиксированной страницы и потокового макета
- Статья Преобразование в формат фиксированной страницы для получения дополнительной информации о макете страницы
- Статья Укажите параметры рендеринга при преобразовании в PDF для получения дополнительной информации об использовании класса
PdfSaveOptions