Imprimer un document excel sur une imprimante PDF en C# ASP.net
Dr_shaman
Messages postés32Date d'inscriptionmardi 20 juin 2006StatutMembreDernière intervention11 février 2009
-
3 oct. 2007 à 10:30
fgoubert
Messages postés4Date d'inscriptionlundi 13 juin 2005StatutMembreDernière intervention 8 février 2010
-
9 sept. 2008 à 13:04
Bonjour je sui depui un certin temps a la recherche d'une métode pour comvertire un fichier excel en PDF.
je suis sous visual C# 2003 en ASP.net et je doit utiliser Acrobat PDF (pasque mon chef a payer une licence et que je compren bien que sa lui ferai mal de pas s'en servire).
j'ais trouver 2 solution, mais les 2 je n'y arrive pas.
solution 1 :
utiliser les Dll adobe :
Acrobat.dll et AcroPDFLib.dll
je fais un bou de code:
//************* création des objet ******************************
Acrobat.AcroAppClass appPDF = new AcroAppClass();
AcroPDFLib.AcroPDFClass monpdf = new AcroPDFLib.AcroPDFClass();
AcroPDFLib.AcroPDF CappPDF = new AcroPDFClass();
// créé un objet pdDoc
Acrobat.AcroPDDoc pdDOC = new AcroPDDoc();
// créé un objet avDoc
Acrobat.AcroAVDoc avDOC = new AcroAVDoc();
//-------------- création des objet ----------------------------
//créé le fichier ******************************
//appPDF.Show();
pdDOC.Create();
avDOC.Open(pdftest,"");
avDOC.Equals(appPDF.GetActiveDoc());
avDOC.SetTitle("coucou");
avDOC.Open(pdftest,"coucou");
pdDOC.Equals(avDOC.GetPDDoc());
pdDOC.SetInfo( "Titre", "mon PDF a moi");
pdDOC.SetInfo( "Auteur", "Galoseau");
pdDOC.SetInfo( "Subject", "je c'est pas");
pdDOC.SetInfo( "Keywords", "nouveau");
pdDOC.AcquirePage(1);
pdDOC.Save(1,NAME);
pdDOC.Close();
avDOC.Close(1);
appPDF.Exit();
#########################################################...
et sa me créé un fichier pdf vide!impossible de créé une page et encore moin de comvertire mon excel.
methode 2 :
j'utilise les librairie excel.
########################################################
object M = System.Reflection.Missing.Value;
try
{
//créer un objet excel.
oXL = new Microsoft.Office.Interop.Excel.Application();
oXL.Visible = true;
//créer un objet classeur.
oWB = (Microsoft.Office.Interop.Excel._Workbook)(oXL.Workbooks.Add(System.Reflection.Missing.Value));
oSheet = (Microsoft.Office.Interop.Excel._Worksheet)oWB.ActiveSheet;
oWB.SaveAs(@"C:\Inetpub\wwwroot\convertion_pdf_dll_acrobat\bin\test_excel1.xls", M, M, M, M, M, Microsoft.Office.Interop.Excel.XlSaveAsAccessMode.xlShared, M, M, M, M, M);
}
catch (Exception ex)
{
Textbox10.Text = ex.ToString();
}
####################################################...
pour une foi microsoft me dessoi pas c'est simple et efficasse sa me créé mon fichier excel oui mais voila le mais je veu pas le créer mais en ouvrire un et le convertire.
donc je vais ouvrire exel créé une macro qui va ouvrire le fichier excel que je veu convertire choisire l'imprimente PDF et le tour est jouer:
###################################################################
try
{
//créer un objet excel.
oXL = new Microsoft.Office.Interop.Excel.Application();
oXL.Visible = true;
//macro qui ouvre le fichier l'imprime en pdf et le refairme
oXL.ExecuteExcel4Macro("Sub nouveau()\n Workbooks.Open Filename:="C:\\Inetpub\\wwwroot\\convertion_pdf_dll_acrobat\\bin\\test_excel1.xls"\n Application.ActivePrinter = "Adobe PDF sur Ne02:"\n ActiveWindow.SelectedSheets.PrintOut Copies:=1, ActivePrinter:= "Adobe PDF sur Ne02: PrToFileName:=TRUE", Collate:=True \nApplication.Wait Now + TimeValue("00:00:10") \n Application.Quit \n End Sub");
}
catch (Exception ex)
{
Textbox10.Text = ex.ToString();
}
fgoubert
Messages postés4Date d'inscriptionlundi 13 juin 2005StatutMembreDernière intervention 8 février 2010 9 sept. 2008 à 13:04
Salut,
Tu peux essayer une autre solution.
Installe CutePDF (gratuit) qui permet d'imprimer tes documents dans des fichiers pdf. Tu peux donc utiliser cette imprimante virtuelle pour gérer tes fichiers excel en pdf.