2010-10-13 9 views
2

J'essaie de créer une application qui convertit un fichier du format HTML au format PDF.HTML en PDF dans C#

L'approche que je me sers est:

  1. HTML à XHTML
  2. XHTML à la mise en forme d'objets
  3. Mise en forme d'objets au format PDF

Je vais avoir un peu de mal avec le XHTML entier à FO (ou xsl).

Pouvez-vous s'il vous plaît me dire comment transformer le XHTML en FO?

Ou peut-être une approche différente de tout le HTML au format PDF?

Merci, Catalin

+1

I'D certainement acheter un produit qui le fait pour vous. Pas une tâche facile. – Will

Répondre

1

Eh bien, vous pouvez utiliser un convertisseur HTML vers PDF via le shell, je suis désolé, je ne peux pas rememeber le nom de celui que je l'ai utilisé dans le passé, si vous avez un Google autour, vous devrait être capable de trouver un bon.

+0

Rappelé ce que j'ai utilisé! http://code.google.com/p/wkhtmltopdf/ – Olical

+0

Cela fonctionne-t-il sur les fichiers * .html locaux? –

+0

Oui, c'est un programme. Vous utilisez la commande shell pour l'exécuter à partir de votre C# – Olical

1

Recherché beaucoup pour mon projet d'application pile personnel SO2PDF et finalement réglé avec wkhtmltopdf qui, jusqu'à présent, est le meilleur outil gratuit pour convertir HTML en PDF. Oui je l'ai utilisé avec C# ;-)

1

j'écrire plus simple d'écrire html au code PDF à l'aide NRerco bibliothèque PDF qui est disponible gratuitement, Installer le paquet NuGet

PM> Installer-Package NReco. PdfGenerator

Create HtmltoPdf() 
    { 
    if (System.IO.File.Exists("HTMLFile.html")) 
    { 
     System.IO.File.Delete("HTMLFile.html"); 
    } 

    System.IO.File.WriteAllText("HTMLFile.html", html); 
    var htmlToPdf = new NReco.PdfGenerator.HtmlToPdfConverter(); 
    if (System.IO.File.Exists("export.pdf")) 
    { 
     System.IO.File.Delete("export.pdf"); 
    } 

    htmlToPdf.GeneratePdfFromFile("HTMLFile.html", null, "export.pdf"); 
} 
0

Voici l'approche différente. Nous allons convertir HTML/XML en PDF directement avec l'outil de fête 3D (il a plusieurs préférences et paramètres de conversion et ne nécessite aucune bibliothèque externe).

1) Téléchargez gratuitement HTML to PDF SDK de her (il est facile PDF SDK)

2) Utilisez le code suivant ou exécutez Centre d'action pour personnaliser la conversion

using BCL.easyPDF.Printer; 

namespace TestPrinter 
{ 
    class Program 
    { 
     static void Main(string[] args) 
     { 
     if(args.Length != 2) 
      return; 

     string inputFileName = args[0]; 
     string outputFileName = args[1]; 
     Printer printer = new Printer(); 
     try 
     { 
      IEPrintJob printjob = printer.IEPrintJob; 
      printjob.PrintOut(inputFileName, outputFileName); 
     } 
     catch(PrinterException ex) 
     { 
      System.Console.WriteLine(ex.Message); 
     } 
     finally 
     { 
      printer.Dispose(); 
     } 
     } 
    } 
} 

Image: HTML to PDF C# API - Action Center