2016-11-11 1 views
2

zu erstellen Ich entwickle eine Anwendung in Xamarin für Android. Ich habe bereits eine HTML-Datei mit StringBuilder erstellt. Jetzt habe ich eine HTML-Datei in meinem externen Speicher und die gleiche Vorlage ist für PDF erforderlich. Also, wenn ich versuche, HTML zu PDF mit iTextSharp mit XML Worker & PDFSharp Bibliotheken zu konvertieren, bekomme ich Build-Fehler aufgrund der fehlenden System.Drawing.dll. Dann habe ich von Xamarin Foren gefunden & Stackoverflow verbindet, dass es für Xamarin.Android nicht unterstützt wird.Nicht möglich, PDF aus HTML in Xamarin Android

Kann mir bitte jemand andere alternative über das Erstellen von Vorlage für PDF oder andere andere nuget Paket für Xamarin.Android, die HTML-Datei in PDF konvertieren wird.

HINWEIS: Ich kann PDF generieren, aber nicht HTML in PDF konvertieren.

Es wäre eine große Hilfe !. Danke vielmals!.

+0

in dieser Frage Werfen Sie einen Blick http://stackoverflow.com/questions/7597103/generate-pdf-based -on-html-code-itextsharp-pdfsharp – InitLipton

+0

@InitLipton Ich überprüfte, aber bekam diesen folgenden Fehler "Konnte das Paket 'HtmlRenderer.Core 1.5.0.5' nicht installieren. Sie versuchen, dieses Paket in ein Projekt zu installieren, das auf 'MonoAndroid, Version' zielt = v6.0 ', aber das Paket enthält keine Assembly-Referenzen oder Inhaltsdateien, die kompatibel sind mit diesem Rahmen. Weitere Informationen erhalten Sie beim Autor des Pakets. " Und in meinen Projekteigenschaften bietet Compile mit Android-Version nur die Option" Use latest platform ". Daher kann ich die Version auch nicht ändern. – sha

Antwort

1

Verwenden Nuget Paket Xam.iTextSharpLGPL

Unten ist der Beispielcode

using System.IO; 
using iTextSharp.text; 
using iTextSharp.text.pdf; 
using iTextSharp.text.html.simpleparser; 
using Android.Graphics; 


    string path = Android.OS.Environment.ExternalStorageDirectory.Path; 
    string pdfPath = System.IO.Path.Combine(path, "samplee.pdf"); 
    System.IO.FileStream fs = new FileStream(pdfPath, FileMode.Create);  
    Document document = new Document(PageSize.A4); 
    PdfWriter writer = PdfWriter.GetInstance(document, fs); 
    HTMLWorker worker = new HTMLWorker(document); 
    document.Open(); 
    StringBuilder html = new StringBuilder(); 
    html.Append("<? xml version='1.0' encoding='utf-8' ?><html><head><title></title></head>"); 
    html.Append("<CENTER>Simple Sample html</H1>"); 
    html.Append("<H4>By User1</H4>"); 
    html.Append("<H2>Demonstrating a few HTML features</H2>"); 
    html.Append("</CENTER>"); 
    html.Append("<p>HTML doesn't normally use line breaks for ordinary text. A white space of any size is treated as a single space. This is because the author of the page has no way of knowing the size of the reader's screen, or what size type they will have their browser set for."); 
    html.Append("</p></body</html>"); 
    TextReader reader = new StringReader(html.ToString()); 
    worker.StartDocument(); 
    worker.Parse(reader); 
    worker.EndDocument(); 
    worker.Close(); 
    document.Close(); 
    writer.Close(); 
    fs.Close();