Convertire un documento in PDF

La capacità di convertire facilmente e in modo affidabile i documenti da un formato all’altro è una caratteristica fondamentale di Aspose.Words. Uno dei formati più popolari per la conversione è PDF-un formato a layout fisso, che conserva l’aspetto originale di un documento durante il rendering su varie piattaforme. Il termine “rendering” è usato in Aspose.Words per descrivere il processo di conversione di un documento in un formato di file impaginato o con il concetto di pagine.

Convertire un documento Word in PDF

La conversione da Word a PDF è un processo piuttosto complesso che richiede diverse fasi di calcolo. Aspose.Words layout engine imita il modo in cui il motore di layout di pagina di Microsoft Word funziona, rendendo i documenti di output di PDF il più vicino possibile a ciò che è possibile vedere in Microsoft Word.

Con Aspose.Words è possibile convertire in modo programmatico un documento dal formato DOC o DOCX a PDF senza utilizzare Microsoft Office. Questo articolo spiega come eseguire questa conversione.

Conversione di DOCX o DOC in PDF

La conversione dal formato del documento DOC o DOCX nel formato PDF in Aspose.Words è molto semplice e può essere eseguita con solo due righe di codice che:

  1. Caricare il documento in un oggetto Document utilizzando uno dei relativi costruttori specificando il nome del documento con la relativa estensione di formato.
  2. Richiamare uno dei metodi Document.Save sull’oggetto Document e specificare il formato di output desiderato come PDF immettendo un nome file con “.PDF " estensione.

Il seguente esempio di codice mostra come convertire un documento da DOCX a PDF utilizzando il metodo 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

È possibile scaricare il file modello di questo esempio da Aspose.Words GitHub.

Converti in diversi standard PDF

Aspose.Words fornisce l’enumerazione PdfCompliace per supportare la conversione di DOC o DOCX in vari standard di formato PDF (ad esempio PDF 1.7, PDF 1.5, ecc.).

Il seguente esempio di codice mostra come convertire un documento in PDF 1.7 utilizzando PdfSaveOptions con conformità a 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);

Converti immagini in PDF

La conversione in PDF non è limitata dai formati di documento Microsoft Word. Qualsiasi formato supportato da Aspose.Words, incluso quello creato a livello di programmazione, può anche essere convertito in PDF. Ad esempio, possiamo convertire immagini a pagina singola, come JPEG, PNG, BMP, EMF o WMF, nonché immagini a più pagine, come TIFF e GIF, in PDF.

L’esempio di codice seguente mostra come convertire le immagini JPEG e TIFF in 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);
}

Per far funzionare questo codice, è necessario aggiungere riferimenti a Aspose.Words e System.Drawing al progetto.

Vedi anche