Come convertire Word in PDF in ASP Net

I documenti di Office sono ottimizzati per la modifica. I PDF, d’altra parte, che vengono sempre visualizzati e stampati in modo coerente, sono progettati per la distribuzione. Le aziende si trovano spesso di fronte alla necessità di convertirsi facilmente dall’una all’altra. Sebbene la conversione dei file di documenti di Office non sia nativa del framework .Net, puoi comunque automatizzare le conversioni da Word a PDF utilizzando .Net. Microsoft fornisce un componente aggiuntivo di Office che gestirà il processo utilizzando l’installazione locale di MS Office tramite chiamate all’API di Office.

1

Crea un progetto Visual Studio e aggiungi un file di codice c-sharp al progetto.

2

Crea un riferimento all’oggetto Microsoft Word nel tuo progetto. Fare clic con il pulsante destro del mouse sul progetto in Esplora soluzioni di Visual Studio. Seleziona “Aggiungi riferimento” dal menu contestuale. Seleziona la scheda “COM” dalla finestra di dialogo che si apre. Scorri l’elenco dei riferimenti fino a trovare la libreria degli oggetti di Microsoft Word 12.0. Fare doppio clic per aggiungere il riferimento.

3

Importare lo spazio dei nomi di Office Interop. Nel file c-sharp che conterrà il tuo codice di conversione, aggiungi, in alto, quanto segue:

using Microsoft.Office.Interop.Word;

4

Crea un metodo di conversione file per contenere il codice di conversione. Il tuo metodo dovrebbe assomigliare a questo:

public void ConvertDocument () {// il codice di conversione va qui}

5

Creare un’istanza dell’oggetto ApplicationClass. Inizia il metodo del codice di conversione creando un’istanza di ApplicationClass, come segue:

ApplicationClass appClass = new ApplicationClass ();

Questo oggetto ti consentirà di chiamare metodi all’interno di Word.

6

All’interno del metodo di conversione, creare gli oggetti file convertiti e impostare il percorso e i parametri di preferenza per l’esportazione. Il tuo codice potrebbe assomigliare a questo:

stringa exportFilePath = @ “C: MyDocs conversionDoc.pdf”; WdExportFormat exportFormat = WdExportFormat.wdExportFormatPDF; bool openAfterExport = false; WdExportOptimizeFor exportOptimizeFor = WdExportOptimizeFor.wdExportOptimizeForPrint; WdExportRange exportRange = WdExportRange.wdExportAllDocument; int startPage = 0; int endPage = 0; WdExportItem paramExportItem = WdExportItem.wdExportDocumentContent; bool includeDocProps = true; bool keepIRM = true; WdExportCreateBookmarks createBookmarks = WdExportCreateBookmarks.wdExportCreateWordBookmarks; bool docStructureTags = true; bool bitmapMissingFonts = true; bool useISO19005_1 = false;

7

Chiama il codice di conversione. Poiché così tanto può andare storto con un processo di conversione, dovresti racchiudere le chiamate di conversione all’interno di blocchi try-catch-latest in modo che gli errori dovuti a file corrotti o processi interrotti non interrompano il programma e in modo che il tuo documento e le istanze di Word si chiudano sempre.

prova {// Apri il documento che desideri convertire. Il primo parametro dovrebbe puntare alla posizione in cui viene salvato il documento. Documento docToConvert = appClass.Documents.Open (ref @ “C: MyDocs myDoc.docx”, ref Type.Missing, ref Type.Missing, ref Type.Missing, ref Type.Missing, ref Type.Missing, ref Type. Mancante, ref Type.Missing, ref Type.Missing, ref Type.Missing, ref Type.Missing, ref Type.Missing, ref Type.Missing, ref Type.Missing, ref Type.Missing, ref Type.Missing); // Esporta il tuo documento come PDF. if (docToConvert! = null) docToConvert.ExportAsFixedFormat (exportFilePath, exportFormat, openAfterExport, exportOptimizeFor, exportRange, paramStartPage, endPage, exportItem, includeDocProps, keepIRM, createBookmarks, docStructureTags, bitamiss } catch (Exception ex) {// Respond to the error} finalmente {// Chiudi e rilascia l’oggetto Document. if (docToConvert! = null) {docToConvert.Close (ref missingParam, ref missingParam, ref missingParam); docToConvert = null; } // Esci da Word e rilascia l’oggetto ApplicationClass. if (appClass! = null) {appClass.Quit (ref missingParam, ref missingParam, ref missingParam); appClass = null; }

    // Microsoft consiglia di chiamare due volte il Garbage Collector qui. GC.Collect (); GC.WaitForPendingFinalizers (); GC.Collect (); GC.WaitForPendingFinalizers ();

}