Ho trovato questo script, fatto molto bene, che può essere usato da linea di comando per convertire da .doc a .pdf
http://www.suodenjoki.dk/us/productions/articles/word2pdf.htm
In realtà sono due, uno per Word 2007 e uno per i precedenti.
In sintesi, per Word 2007 occorre:
- Avere Word 2007 con l’estensione per la stampa in pdf
- creare un file vbs incollandoci il contenuto dello script come dal link sopra, ad esempio doc2pdf.vbs
- lanciare il comando: cscript /nologo doc2pdf.vbs /nologo c:\prova.doc
tutto qua.
Word 2007 ha la possibilita, previa installazione di un plugin, di esportare il documento in formato pdf. Ho usato questa funzione per esportare in pdf un documento word aperto da uno script notes.
L’apertura del file è sempre la stessa:
Set wordAppObject = CreateObject("Word.Application")
Set wordDocObject = wordAppObject.Documents.Open("c:\prova.doc")
Se si prova a registrare una macro in word, esportando in pdf si ottiene la seguante istruzione:
wordDocObject.ExportAsFixedFormat OutputFileName:= filepdf,
ExportFormat:=wdExportFormatPDF,
OpenAfterExport:=False,
OptimizeFor:=wdExportOptimizeForOnScreen,
Range:=wdExportAllDocument,
From:=1, To:=1,
Item:=wdExportDocumentContent,
IncludeDocProps:=True,
KeepIRM:=True,
CreateBookmarks:=wdExportCreateNoBookmarks,
DocStructureTags:=True,
BitmapMissingFonts:=True,
UseISO19005_1:=False
La documentazione della funzione ExportAsFixedFormat si trova qua:
http://msdn.microsoft.com/en-us/library/bb256835.aspx
dove vengono descritti tutti i parametri. Questa istruzione, trasformata in una istruzioni lotus script diventa:
Call wordDocObject.ExportAsFixedFormat(filepdf,
17,
False,
0,
0,
1,
1,
0,
True,
True,
0,
True,
True,
False )
Dove ho sostituito alle costanti di word i valori presi dalle tabelle qui sotto:
WdExportFormat

wdExportOptimizeForOnScreen

wdExportAllDocument
a href=”http://www.nicolacolonna.it/wp-content/uploads/2008/10/pdf3.gif”>
WdExportItem

WdExportCreateBookmarks

Un piccolo esempio di come aprire ed esportare un Crystal Report in c#:
using CrystalDecisions.CrystalReports.Engine;
using CrystalDecisions.Shared;
class CrystalUtils
{
public static void Export()
{
//Creo l'oggetto report e lo apro
ReportDocument cryRpt;
cryRpt = new ReportDocument();
cryRpt.Load(@"C:\magazzino.rpt");
/*
Esempio di stampa su console dei parametri e valorizzazione
ParameterFields parametri = cryRpt.ParameterFields;
foreach (ParameterField parametro in parametri)
{
Console.WriteLine("Parametro: " + parametro.Name);
}
cryRpt.SetParameterValue(0, "(Tutti)");
*/
//Logon del report su DB
cryRpt.SetDatabaseLogon("user", "password", "server", "database");
//Export su xls
cryRpt.ExportToDisk(ExportFormatType.Excel, @"e:\magazzino.xls");
//Export su pdf
cryRpt.ExportToDisk(ExportFormatType.PortableDocumentFormat, @"e:\magazzino.pdf");
//Chiudo
cryRpt.Close();
}
}