2017-10-27 3 views
1

Ich entwickle eine App in Xamarin für Android.Xamarin Android speichern Webview in pdf

Ziel ist, dass der Benutzer ein Dokument füllt und es als PDF speichert.

Ich habe diesen Prozess versucht:

HTML PDF

ich eine cshtml Datei entworfen haben, welche die gleiche Struktur wie das Dokument enthält, mit dem Eingang, dass der Benutzer eingefügt. So weit, so gut, es sieht gut aus im Webview. Ich möchte dies nun in PDF umwandeln, aber ich kann keinen Weg finden es zu konvertieren.

Gibt es eine Möglichkeit, CSHTML in PDF zu konvertieren oder den Inhalt der Webansicht irgendwie in PDF zu konvertieren?

Ich habe versucht eine Erweiterung namens "iTextSharp" zu erstellen und zu manipulieren PDFs (mein Versuch, HTML in eine PDF-Datei zu konvertieren, aber die Stile und Bilder in HTML nicht angewendet werden).

Das letzte Ziel ist es, eine PDF-Datei zu erstellen, die die gleiche Struktur wie eine HTML-Seite, die ich besitze, hat.

Wie kann ich das erreichen? Ideen sind herzlich willkommen

+0

Dies kann Ihnen helfen: http://www.annalytics.co.uk/android/pdf/2017/04/06/Save-PDF-From-An-Android-WebView/ – MilanG

+0

Wollen Sie Erstellen Sie ein PDF, das eine "Bild" -Darstellung des WebView enthält, oder erstellen Sie ein PDF, das "Text" enthält. – SushiHangover

+0

Ich denke beide würden für mich funktionieren, da ich nur zeigen und speichern möchte. Ich habe die Lösung von @MilanG verwendet und es funktioniert, jetzt möchte ich nur in einem bestimmten Pfad speichern, ohne den Druckdialog zu zeigen –

Antwort

2

Ich könnte den gesamten WebView Seiteninhalt in PDF mit unter Code umwandeln. Hoffe es kann dir helfen. Allerdings habe ich das gerade im Simulator ausprobiert.

[Activity(Label = "DroidWebview", MainLauncher = true, Icon = "@mipmap/icon")] 
public class MainActivity : Activity 
{ 
    WebView myWebView; 
    protected override void OnCreate(Bundle savedInstanceState) 
    { 
     base.OnCreate(savedInstanceState); 

     // Set our view from the "main" layout resource 
     SetContentView(Resource.Layout.Main); 

     myWebView = FindViewById<WebView>(Resource.Id.webview); 
     myWebView.Settings.JavaScriptEnabled = true; 
     myWebView.SetWebViewClient(new MyWebViewClient()); 

     myWebView.LoadUrl("https://stackoverflow.com/questions/46978983/xamarin-android-save-webview-in-pdf"); 

     Button myPrintButton = FindViewById<Button>(Resource.Id.myPrintButton); 
     myPrintButton.Click += (sender, e) => 
     { 
      var printManager = (PrintManager)GetSystemService(PrintService); 
      string fileName = "MyPrint_" + Guid.NewGuid().ToString() + ".pdf"; 
      var printAdapter = myWebView.CreatePrintDocumentAdapter(fileName); 
      PrintJob printJob = printManager.Print("MyPrintJob", printAdapter, new PrintAttributes.Builder().Build()); 
     }; 
    } 
} 

public class MyWebViewClient : WebViewClient 
{ 
    public override bool ShouldOverrideUrlLoading(WebView view, string url) 
    { 
     view.LoadUrl(url); 
     return false; 
    } 
} 
+0

Das war's, großer Dank! Wissen Sie, ob es möglich ist, ohne Druckdialog zu speichern? –