Converti un documento in PDF
La capacità di convertire facilmente e in modo affidabile documenti da un formato all’altro è una caratteristica chiave di Aspose.Words. Uno dei formati più popolari per la conversione è PDF, un formato a layout fisso, che preserva l’aspetto originale di un documento durante il rendering su varie piattaforme. Il termine “rendering” viene utilizzato in Aspose.Words per descrivere il processo di conversione di un documento in un formato di file impaginato o con il concetto di pagine.
Converti un documento Word in PDF
La conversione da Word a PDF è un processo piuttosto complesso che richiede diverse fasi di calcolo. Il motore di layout Aspose.Words imita il modo in cui funziona il motore di layout di pagina di Microsoft Word, rendendo i documenti di output PDF il più vicino possibile a ciò che puoi vedere in Microsoft Word.
Con Aspose.Words puoi convertire a livello di codice un documento dai formati Word, come DOC o DOCX, in PDF senza utilizzare Microsoft Office. Questo articolo spiega come eseguire questa conversione.
Converti DOCX o DOC in PDF
La conversione dal formato documento DOC o DOCX al formato PDF in Aspose.Words è molto semplice e può essere eseguita con sole due righe di codice che:
- Carica il tuo documento in un oggetto Document utilizzando uno dei suoi costruttori specificando il nome del documento con la sua estensione di formato.
- Richiamare uno dei metodi Document.Save sull’oggetto Document e specificare il formato di output desiderato come PDF inserendo un nome file con estensione “.PDF”.
Il seguente esempio di codice mostra come convertire un documento da DOCX in PDF utilizzando il metodo Save:
// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-.NET.git. | |
Document doc = new Document(MyDir + "Document.docx"); | |
doc.Save(ArtifactsDir + "BaseConversions.DocxToPdf.pdf"); |
È possibile scaricare il file modello di questo esempio da Aspose.Words GitHub.
A volte è necessario specificare opzioni aggiuntive, che possono influenzare il risultato del salvataggio di un documento come PDF. Queste opzioni possono essere specificate utilizzando la classe PdfSaveOptions, contenente proprietà che determinano come verrà visualizzato l’output PDF.
Tieni presente che con la stessa tecnica puoi convertire qualsiasi documento in formato layout di flusso in formato PDF.
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 (come PDF 1.7, PDF 1.5, ecc.).
Il seguente esempio di codice dimostra 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-.NET.git. | |
Document doc = new Document(MyDir + "Rendering.docx"); | |
PdfSaveOptions saveOptions = new PdfSaveOptions { Compliance = PdfCompliance.Pdf17 }; | |
doc.Save(ArtifactsDir + "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 codice, può anche essere convertito in PDF. Ad esempio, possiamo convertire in PDF immagini a pagina singola, come JPEG, PNG, BMP, EMF o WMF, nonché immagini a più pagine, come TIFF e GIF.
Il seguente esempio di codice mostra come convertire immagini JPEG e TIFF in PDF:
// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-.NET.git. | |
ConvertImageToPdf(ImagesDir + "Logo.jpg", ArtifactsDir + "BaseConversions.JpgToPdf.pdf"); | |
ConvertImageToPdf(ImagesDir + "Transparent background logo.png", ArtifactsDir + "BaseConversions.PngToPdf.pdf"); | |
ConvertImageToPdf(ImagesDir + "Windows MetaFile.wmf", ArtifactsDir + "BaseConversions.WmfToPdf.pdf"); | |
ConvertImageToPdf(ImagesDir + "Tagged Image File Format.tiff", ArtifactsDir + "BaseConversions.TiffToPdf.pdf"); | |
ConvertImageToPdf(ImagesDir + "Graphics Interchange Format.gif", ArtifactsDir + "BaseConversions.GifToPdf.pdf"); |
// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-.NET.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> | |
public void ConvertImageToPdf(string inputFileName, string outputFileName) | |
{ | |
Console.WriteLine("Converting " + inputFileName + " to PDF ...."); | |
Document doc = new Document(); | |
DocumentBuilder builder = new DocumentBuilder(doc); | |
// Read the image from file, ensure it is disposed. | |
using (Image image = Image.FromFile(inputFileName)) | |
{ | |
// 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". | |
FrameDimension dimension = new FrameDimension(image.FrameDimensionsList[0]); | |
int framesCount = image.GetFrameCount(dimension); | |
for (int frameIdx = 0; frameIdx < framesCount; frameIdx++) | |
{ | |
// Insert a section break before each new page, in case of a multi-frame TIFF. | |
if (frameIdx != 0) | |
builder.InsertBreak(BreakType.SectionBreakNewPage); | |
image.SelectActiveFrame(dimension, frameIdx); | |
// 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. | |
PageSetup ps = builder.PageSetup; | |
ps.PageWidth = ConvertUtil.PixelToPoint(image.Width, image.HorizontalResolution); | |
ps.PageHeight = ConvertUtil.PixelToPoint(image.Height, image.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.PageWidth, | |
ps.PageHeight, | |
WrapType.None); | |
} | |
} | |
doc.Save(outputFileName); | |
} |
Per far funzionare questo codice, devi aggiungere riferimenti a Aspose.Words e System.Drawing
al tuo progetto.
Riduci le dimensioni di output del PDF
Quando si salva in PDF, è possibile specificare se si desidera ottimizzare l’output. Per fare ciò, è necessario impostare il flag OptimizeOutput su true, quindi le tele nidificate ridondanti e le tele vuote verranno rimosse, gli glyph vicini con la stessa formattazione verranno concatenati.
L’esempio di codice seguente mostra come ottimizzare l’output:
// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-.NET.git. | |
Document doc = new Document(MyDir + "Rendering.docx"); | |
PdfSaveOptions saveOptions = new PdfSaveOptions { OptimizeOutput = true }; | |
doc.Save(ArtifactsDir + "WorkingWithPdfSaveOptions.OptimizeOutput.pdf", saveOptions); |
Guarda anche
-
L’articolo Rendering per maggiori informazioni sui formati a pagina fissa e con layout a flusso
-
L’articolo Conversione nel formato a pagina fissa per maggiori informazioni sull’impaginazione
-
L’articolo Specifica le opzioni di rendering durante la conversione in PDF per maggiori informazioni sull’utilizzo della classe
PdfSaveOptions
-
L’articolo Scopri le funzionalità della conversione in PDF/A e PDF/UA che descrive quale standard PDF e il relativo ISO per gli standard PDF supportano Aspose.Words
-
L’articolo Quale standard PDF è meglio scegliere per determinare quali standard PDF hanno senso per quali casi
-
L’articolo Lavorare con PDF/A o PDF/UA descrive i requisiti per il contenuto del documento nei formati PDF/A e PDF/UA – principalmente i requisiti per la struttura e i caratteri
-
L’articolo Avvisi sui problemi di accessibilità durante il salvataggio in PDF/A e PDF/UA descrive quali requisiti di accessibilità dei contenuti impongono PDF/A e PDF/UA