Převod dokumentu na PDF

Schopnost snadno a spolehlivě převádět dokumenty z jednoho formátu do druhého je klíčovou vlastností Aspose.Words. Jedním z nejpopulárnějších formátů pro převod je PDF – formát s pevným rozložením, který zachovává původní vzhled dokumentu během jeho vykreslování na různých platformách. Termín “Vykreslování” se používá v Aspose.Words k popisu procesu převodu dokumentu do formátu souboru, který je stránkovaný nebo má koncept stránek.

Převod dokumentu Word na PDF

Převod z Word na PDF je poměrně složitý proces, který vyžaduje několik fází výpočtu. Aspose.Words layout engine napodobuje způsob, jakým Microsoft Word je page layout engine funguje, takže PDF výstupní dokumenty vypadají co nejblíže tomu, co můžete vidět v Microsoft Word.

Pomocí Aspose.Words můžete programově převést dokument z formátu DOC nebo DOCX do formátu PDF bez použití Microsoft Office. Tento článek vysvětluje, jak provést tuto konverzi.

Převod DOCX nebo DOC na PDF

Převod z formátu dokumentu DOC nebo DOCX do formátu PDF v Aspose.Words je velmi snadný a lze jej provést pouze dvěma řádky kódu, které:

  1. Načtěte dokument do objektu Document pomocí jednoho z jeho konstruktorů zadáním názvu dokumentu s příponou jeho formátu.
  2. Vyvolejte jednu z metod Document.Save na objektu Document a zadejte požadovaný výstupní formát jako PDF zadáním názvu souboru s “.PDF” Rozšíření.

Následující příklad kódu ukazuje, jak převést dokument z DOCX na PDF pomocí metody 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

Soubor šablony tohoto příkladu si můžete stáhnout z Aspose.Words GitHub.

Převést na různé PDF standardy

Aspose.Words poskytuje výčet PdfCompliace na podporu převodu DOC nebo DOCX do různých standardů formátu PDF (například PDF 1.7, PDF 1.5, atd.).

Následující příklad kódu ukazuje, jak převést dokument na PDF 1.7 Pomocí PdfSaveOptions s dodržením 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);

Převod obrázků na PDF

Převod na PDF není omezen formáty dokumentů Microsoft Word. Jakýkoli formát podporovaný Aspose.Words, včetně programově vytvořeného, lze také převést na PDF. Můžeme například převést jednostránkové obrázky, například JPEG, PNG, BMP, EMF, nebo WMF, stejně jako vícestránkové obrázky, například TIFF a GIF, až PDF.

Následující příklad kódu ukazuje, jak převést obrázky JPEG a TIFF na 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);
}

Aby tento kód fungoval, musíte do svého projektu přidat odkazy na Aspose.Words a System.Drawing.

Vidět