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éé.