Womit erstellt Ihr eure Berichte (PDF-Dateien erzeugen)

  • 1 Antworten
  • Neuester Beitrag
Diskutiere Womit erstellt Ihr eure Berichte (PDF-Dateien erzeugen) im Diskussionen zu Entwickler-/Entwicklungstools im Bereich Android App Entwicklung.
E

enrem

Erfahrenes Mitglied
Hallo zusammen,

ich möchte eine Liste mit Text und Bildern generieren. Zur Zeit wird diese Liste als Excel-Datei erzeugt. Nun würde ich gerne Bilder hinzufügen und frage mich, ob es sinnvoller ist, die Berichte direkt als PDF-Dateien zu generieren.

Meine Frage:

1) Wie realisiert Ihr solche Ausgaben? HTML dann nach PDF konvertieren oder schreibt Ihr direkt in eine PDF-Datei?
2) Gibt es freie Bibliotheken (Open Source auf basis der GNU-Lizenz) die mir das Leben leichter machen?

Über ein paar Infos würde ich mich freuen.

Achja: Die Bibliotheken dürfen durchaus bereits API 21 erwarten.

Gruß enrem
 
E

enrem

Erfahrenes Mitglied
Ich habe nun eine für mich eine perfekte Lösung gefunden. Bericht in HTML generieren und der Rest macht Android.

Code:
    private void print() {
       
        // WebView für den Druck instantiieren
        final WebView webView = new WebView(this);
        webView.setWebViewClient(new WebViewClient() {

            @Override
            public boolean shouldOverrideUrlLoading(WebView view,
                                                    WebResourceRequest request) {
                return false;
            }

            @Override
            public void onPageFinished(WebView view, String url) {
                // PrintManager-Instanz ermitteln
                PrintManager printManager =
                        null;
                if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.M) {
                    printManager = getSystemService(PrintManager.class);
                }

                // Der Adapter stellt den Dokumentinhalt bereit
                PrintDocumentAdapter printAdapter =
                        null;

                if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.LOLLIPOP) {
                    printAdapter = webView.createPrintDocumentAdapter("Dokumentname");
                }

                // Druckauftrag erstellen und übergeben
                String jobName = getString(R.string.app_name) + " Dokument";
                PrintJob printJob = printManager.print(jobName,
                        printAdapter,
                        new PrintAttributes.Builder().build());
                Log.d("MyApp", printJob.getInfo().toString());
            }
        });

        String htmlDocument = "<html><body><h1>Super, so kann man drucken.</h1>" +
                "<p><img src=\"ic_launcher.png\" />" +
                "<br />Ein Test</p></body></html>";
        webView.loadDataWithBaseURL("file:///android_asset/",
                htmlDocument, "text/HTML", "UTF-8", null);
    }
Somit hat sich dieses Thema erledigt.