Avete qualche .Net gratuito codice gestito per la conversione DOCX in formato PDF?

StackOverflow https://stackoverflow.com/questions/1356718

  •  20-09-2019
  •  | 
  •  

Domanda

Nel mio progetto web, io uso DocX tipo di file per contenere modello di rapporto. Ho bisogno di convertire DocX tipo di file in formato PDF. Avete qualche codice gestito .Net per farlo?

Lo so diversi modi per risolvere questo problema. Ma non è gestito codice e libero come i seguenti elementi.

  • Word 12.0 Object libreria Per salvare un Word 2007, documento sia come documento PDF o un documento XPS. Ma richiede l'installazione di Office 2007 sul server.

  • Stampa utilizzando alcuni stampante PDF gratuito come PDFCreator . Ma ho bisogno di qualche programma per l'open DocX sul server, come Office 2007. E 'pessima idea.

  • Convertire dal programma convertitore gratuito. Ma risultato non è perfetto.

  • Usa framework come XF Rendering Server . E 'molto buona idea, ma non è libero.

  • Crea tutto il contenuto del documento in PDF Api come iTextSharp . Ma devo provare difficile per la creazione di bel documento.

  • In alternativa creare un documento modello con altro formato di file che può esportarlo in formato DOCX e formato di file PDF. Inoltre, gli utenti finali dovrebbero facilmente modificare questo file. Se si conosce, mi dica.

Grazie,

È stato utile?

Soluzione

Non ho il codice per la conversione DOCX in formato PDF, ma sembra il vostro requisito per DocX non è ferma. Il tuo ultimo punto dice:

  

O creare documento modello con altri   formato di file che può esportarlo in DocX   e formato di file PDF. Inoltre,   gli utenti finali dovrebbero modificare facilmente questo   file. Se si conosce, mi dica.

Ho letto questo a significare che si vuole essere in grado di creare un modello di documento, riempirlo con i dati e convertirlo in PDF, consente ancora il modello deve essere mantenuta, giusto?

Soluzione: XSL-FO

XSL-FO è uno standard W3C come HTML e può essere trasformato da una serie di open source e prodotti commerciali in PDF, WordML, XPS, PS, PCL, SVG, TIFF, ecc Ho usato questo per fornire centinaia di migliaia di documenti al mese, sia online come PDF e non in linea (cose come la stampa di controllo di massa).

Per iniziare, qui è la pagina W3C per XML-FO . Ci sono un sacco di buone informazioni lì, compreso un elenco di software (sia open source che commecial) lungo il lato sinistro. Personalmente ho usato due prodotti commerciali denominati IBEX PDF Creator e XEP da RenderX . Entrambi sono ottimi prodotti, e v'è una gestito implementazione C # 100% per arrivare a PDF chiamato FO.NET up su CodePlex. Non ho provato questo, ma dovrebbe soddisfare il vostro criterio di "libero".

Ci sono un certo numero di modi in cui è possibile modificare il modello per i documenti per essere creati in XSL-FO. In genere questo modello è XSLT che si applica ai dati XML, ma questo non è un requisito. Ho costruito questi a mano, ma è un po 'di una curva di apprendimento. Si può iniziare con un documento XSL-FO e compilare le sezioni di esso con il codice, proprio come si potrebbe HTML. La buona notizia è che ci href="http://www.oxygenxml.com/fo_editor.html" rel="noreferrer"> un certo numero di < a href = "http://www.renderx.com/tools/datastyler.html" rel = "noreferrer"> editor XSL-FO là fuori. La cattiva notizia è che nessuno io sappia sono liberi, ma molti di loro sono a buon mercato e si può trovare qualcosa che soddisfi il criterio libera con un po 'di usare Google. Tuttavia, una possibilità è che si può convertire da Word utilizzando un foglio di stile ( commerciale & gratuito ).

Altri suggerimenti

L'installazione di Office 2007 e utilizzando la libreria di oggetti di Word 12 è sicuramente la possibilità mi piacerebbe andare per (e lo hanno fatto su alcuni dei miei progetti).

Se non si desidera installare Word su un server di produzione web, perché non hanno su un server secondario. È possibile ottenere questo secondo server per comunicare con il primo (utilizzando un servizio web o qualcosa di simile) -. Potrebbe richiedere il documento di Word prossimo che ha bisogno di esportare, fare la conversione e quindi restituire i dati in formato PDF

Fatemi sapere se si desidera un C # esempio di automazione di Word che fa questa conversione (è molto banale).

Adrian


Ecco il mio codice, pubblicato per Jason. Questo funziona con Word 2007. È necessario scaricare e installare l'esportatore PDF dal sito Web di Office:

using Microsoft.Office.Interop.Word;

...

object _read_only = false;
object _visible = true;
object _false = false;
object _true = true;
object _dynamic = 2;
object  _missing = System.Reflection.Missing.Value;

object _htmlFormat = 8;        
object _pdfFormat = 17;
object _xpsFormat = 18;

object fileName = "C:\\Test.docx";

ApplicationClass ac = new ApplicationClass();
//ac.Visible = true; // Uncomment to see Word as it opens and converts the document
//ac.Activate();

Document d = ac.Documents.Open(ref fileName, ref _missing, ref _true, ref _read_only, ref _missing, ref _missing, ref _missing, ref _missing, ref _missing, ref _missing, ref _missing, ref _visible, ref _missing, ref _missing, ref _missing, ref _missing);

object newFileName = ((string)fileName).Substring(0, ((string)fileName).LastIndexOf(".")) + ".pdf";

d.SaveAs(ref newFileName, ref _pdfFormat, ref _missing, ref _missing, ref _missing, ref _missing, ref _missing, ref _missing, ref _missing, ref _missing, ref _missing, ref _missing, ref _missing, ref _missing, ref _missing, ref _missing);

d.Close(ref _false, ref _missing, ref _missing);
ac.Quit(ref _false, ref _missing, ref _missing);

ac = null;

Quindi, Soul_Master, quello che stai dicendo è che non si desidera utilizzare interoperabilità (anche se non si dice perché, che sarei interessato a sapere), non si vuole pagare per uno spot esportatore, e si desidera un risultato perfetto?

Non posso aiuterò, ho paura. Interop vi darà risultati perfetti, ogni volta, e hai già il software. Se non utilizzerà che, si sta andando ad avere per fare un sacrificio -. Tra il costo o la qualità

L'Open Office ha un'API? che sarebbe almeno essere una libera scelta?

Crea il PDF utilizzando uno strumento di comunicazione come ActiveReports / Crystal Reports (molto più facile che usare iTextSharp)

Ho risolto i miei problemi con docx alla conversione in PDF con un componente gratuito chiamato Spire.Doc libero . Si può vedere di più su di esso su questo sito . E 'abbastanza facile l'utilizzo.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top