Ich versuche, eine Java-Bibliothek zu finden, die mithilfe der CSS-Druckstile von HTML in PDF konvertieren kann.
Ich möchte, dass diese Bibliothek für die kommerzielle Nutzung kostenlos ist. Nicht wie itext, dass Sie die AGPL-Lizenz bezahlen oder verwenden müssen, die Ihren gesamten Code anzeigt.
Sie haben einige Möglichkeiten:
Schließlich fiel die Wahl auf die Bibliothek Flying Saucer, die die Kapazitäten einer alten Open-Source-Version in itext nutzt und es uns ermöglicht, nicht alle CSS-Druckstile zu verwenden, aber zumindest die wichtigen.
https://github.com/flyingsaucerproject/flyingsaucer
Flying Saucer akzeptiert die CSS 2.1-Spezifikation. Sie können weitere Informationen darüber im Link erhalten und die CSS-Spezifikation im Internet überprüfen (ich habe nicht die Berechtigung, mehr als 2 Links zu setzen).
Sie können die Cloudmersive Convert API verwenden, die für die kommerzielle Nutzung bis zu 1.000 Conversions/Monat kostenlos ist. So können Sie es in Java aufrufen:
// Import classes:
//import com.cloudmersive.client.invoker.ApiClient;
//import com.cloudmersive.client.invoker.ApiException;
//import com.cloudmersive.client.invoker.Configuration;
//import com.cloudmersive.client.invoker.auth.*;
//import com.cloudmersive.client.ConvertDocumentApi;
ApiClient defaultClient = Configuration.getDefaultApiClient();
// Configure API key authorization: Apikey
ApiKeyAuth Apikey = (ApiKeyAuth) defaultClient.getAuthentication("Apikey");
Apikey.setApiKey("YOUR API KEY");
// Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null)
//Apikey.setApiKeyPrefix("Token");
ConvertDocumentApi apiInstance = new ConvertDocumentApi();
File inputFile = new File("/path/to/inputfile"); // File | Input file to perform the operation on.
Boolean includeBackgroundGraphics = true; // Boolean | Optional: Set to true to include background graphics in the PDF, or false to not include. Default is true.
Integer scaleFactor = 56; // Integer | Optional: Set to 100 to scale at 100%, set to 50% to scale down to 50% scale, set to 200% to scale up to 200% scale, etc. Default is 100%. Maximum is 1000%.
try {
byte[] result = apiInstance.convertDocumentHtmlToPdf(inputFile, includeBackgroundGraphics, scaleFactor);
System.out.println(result);
} catch (ApiException e) {
System.err.println("Exception when calling ConvertDocumentApi#convertDocumentHtmlToPdf");
e.printStackTrace();
}
Sie können htmltopdf-java verwenden , das auf wkhtmltopdf basiert.
Ich weiß, dass dies ein etwas altes Thema ist, aber für zukünftige Referenzen und zukünftige Programmierer schlage ich vor, https://pdfmyurl.com zu verwenden , das ich persönlich verwende.
Es enthält ein Codebeispiel für .NET / C#, Java, JavaScript, PHP, Perl, Ruby, Python und VB.net.
Abgesehen von der programmiererfreundlichen Plattform verfügt es über ein gut dokumentiertes Tutorial, das leicht befolgt werden kann.
Keine Java-Bibliothek, aber Sie können Chrome im Headless-Modus ausführen (keine GUI, genau wie die Befehlszeile) und anweisen, eine PDF- oder PNG-Datei der gewünschten Seite (URL) zu erstellen.
AXT