Imprimer un document excel sur une imprimante PDF en C# ASP.net

Dr_shaman Messages postés 32 Date d'inscription mardi 20 juin 2006 Statut Membre Dernière intervention 11 février 2009 - 3 oct. 2007 à 10:30
fgoubert Messages postés 4 Date d'inscription lundi 13 juin 2005 Statut Membre Derniè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;

                //ajouter des valeur au cellule
                oSheet.Cells[1, 1] = "si ce document sinprime par erreur sur une imprimante veuillez s'il vous plait contacter Galosau mathieu";
                oSheet.Cells[1, 2] = "isis";
                oSheet.Cells[1, 3] = "osiris";
                oSheet.Cells[1, 4] = "1";
                oSheet.Cells[2, 1] = "2";
                oSheet.Cells[2, 2] = "3";
                oSheet.Cells[2, 3] = "4";
                oSheet.Cells[2, 4] = "5";
            }
            catch (Exception ex)
            {
                Textbox10.Text = ex.ToString();
            }
       

            #region Enregistrer le fichier Excel sous
           
            try
            {

                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();
            }

#############################################################

mais revoila le mais :
sa marche pas :
Exception de HRESULT : 0x800A03EC.
la macro marche pas

je ne compren pas quesqu'y marche pas et comment il fau fair dans les Deux cas.
merci d'avence ci vous aver des idéé.

1 réponse

fgoubert Messages postés 4 Date d'inscription lundi 13 juin 2005 Statut Membre Derniè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.

En espérant que ca t'aide.

Fred
0
Rejoignez-nous