PDF-Bibliothek zum Hinzufügen von Schlüsselwort-Metadaten zu PDF

Ich hatte diese Frage ursprünglich über den Stapelüberlauf gepostet, aber mir wurde empfohlen, stattdessen hier zu posten.

Ursprüngliche Frage

Ich bin dabei, eine Windows Mobile-Anwendung in Xamarin Forms, insbesondere Android, zu konvertieren. In der Windows Mobile-App erstellen wir PDFs mit PDF4NET und können dem Abschnitt „Dokumentinformationen“ der PDF-Datei Schlüsselwörter hinzufügen. Bei der Konvertierung in Xamarin Forms (Android) kann ich PDF4NET aufgrund von Plattformbeschränkungen nicht weiter verwenden, aber ich bin auf PrintedPDFDocument gestoßen. Es erfüllt alle bisherigen Anforderungen, mit Ausnahme des Hinzufügens von Schlüsselwörtern zu den Dokumentinformationen. Der gesamte Erstellungsprozess des PDFs erfolgt auf dem Mobilgerät – Text/Bilder und Metadaten.

Ich konnte in der Dokumentation für PrintedPDFDocument noch nichts über das Hinzufügen von Schlüsselwörtern finden, und es sieht nicht so aus, als hätte das Objekt eine Eigenschaft für Dokumentinformationen. Gibt es dafür eine spezielle Methode oder wird diese überhaupt nicht unterstützt? Wenn es keine Möglichkeit gibt, Dokumentinformationen in PrintedPDFDocument zu erstellen, welche anderen Optionen habe ich für die PDF-Generierung mit Xamarin und Android?

Dies wäre für den kommerziellen Gebrauch, aber wenn es eine Open-Source-Bibliothek gibt, die dies handhabt, wäre das großartig.

Danke im Voraus!

Sie erwähnen die PDF-Erstellung. Was ist die Quelle des PDFs? Von einem anderen Dateityp (z. B. DOCX, PNG) oder manuell über die PDF4NET-API?
@Ryan Wir erstellen PDFs manuell mit PDF4NET und müssen weiterhin dasselbe tun.
Oh, weil Ihre Frage lautete: "Ich kann PDF4NET nicht weiter verwenden". Wollen Sie damit sagen, dass Sie die PDF-Serverseite mit PDF4NET erstellen, aber die Schlüsselwort-Metadaten auf Android hinzufügen? Vielleicht könnten Sie Ihre Frage aktualisieren, um die Dinge klarer zu machen.
Danke für den Beitrag; Ich ging voran und erklärte das. Wir führen die gesamte PDF-Erstellung auf dem Mobilgerät durch, da das Gerät möglicherweise nicht immer mit dem Internet verbunden ist. Auch die Erstellung des PDFs muss über den Tag verteilt relativ häufig erfolgen, da es als „Zustellnachweis“ dient. Im Moment sieht es so aus, als würden wir XFINIUM verwenden, da dies alle unsere Anforderungen erfüllt.
Sie werden also den PDF4NET-API-Code, mit dem Sie das PDF generiert haben, auf die XFINIUM-API portieren? Und welche Bedeutung haben die Keywords für Sie? Es ist eine selten genutzte Funktion und in der neuesten PDF 2.0 ISO-Spezifikation sogar veraltet. Könnten Sie zum Schluss erläutern, was Sie mit „Liefernachweis“ meinen?
Zur Portierung ist das richtig. Ich kann nicht sehr detailliert auf das Projekt eingehen, da wir mit der Arbeit daran beauftragt sind, aber ich glaube, dass die Verwendung der Schlüsselwörter im Wesentlichen von einem anderen Drittanbieter verwendet wird, um die PDFs für Abrechnungszwecke zu sortieren. Ich glaube, dieser Anwendungsfall sollte auch Ihren "Liefernachweis" teilweise beantworten.

Antworten (3)

Die XFINIUM.PDF- Bibliothek unterstützt das Hinzufügen von Schlüsselwörtern und anderen Informationen zu PDF-Dateien auf Xamarin Android und iOS.
Der folgende Code zeigt, wie dies erreicht werden kann:

PdfFixedDocument document = new PdfFixedDocument(inputPdfFile);

// Display the document in full screen mode.
document.DisplayMode = PdfDisplayMode.FullScreen;

// Fill the document information.
document.DocumentInformation = new PdfDocumentInformation();
document.DocumentInformation.Author = "Xfinium Software";
document.DocumentInformation.CreationDate = DateTime.Now;
document.DocumentInformation.ModifyDate = DateTime.Now;
document.DocumentInformation.Creator = "Xfinium.Pdf DocumentProperties sample";
document.DocumentInformation.Producer = "Xfinium.Pdf";
document.DocumentInformation.Title = "Xfinium.Pdf DocumentProperties sample";
document.DocumentInformation.Subject = "Xfinium.Pdf sample code";
document.DocumentInformation.Keywords = "xfinium.pdf,pdf,sample";

// Set custom metadata in the XMP metadata.
document.XmpMetadata = new PdfXmpMetadata();
// This custom metadata will appear as a child of 'xmpmeta' root node.
document.XmpMetadata.Metadata = "<custom>Custom metadata</custom>";

// Set the viewer preferences.
document.ViewerPreferences = new PdfViewerPreferences();
document.ViewerPreferences.CenterWindow = true;
document.ViewerPreferences.DisplayDocumentTitle = true;
document.ViewerPreferences.HideMenubar = true;
document.ViewerPreferences.HideToolbar = true;
document.ViewerPreferences.HideWindowUI = true;
document.ViewerPreferences.PrintScaling = PdfPrintScaling.None;

// Set the PDF version.
document.PdfVersion = PdfVersion.Version15;

document.Save(outputPdfFile);

Haftungsausschluss: Ich arbeite für das Unternehmen, das die Bibliothek entwickelt.

Danke dafür. Ich habe diese Informationen weitergegeben und mein Unternehmen wird sich mit einer Frage zu mobilen vs. plattformübergreifenden Versionen an Xfinium wenden.

Syncfusion Essential PDF unterstützt das Erstellen der PDF-Datei in der Xamarin-Anwendung. Ihre Anforderung könnte durch die Verwendung des folgenden Code-Snippets erfüllt werden

//Create a new PDF document.

PdfDocument document = new PdfDocument();

//Set document information.

document.DocumentInformation.Author = "Syncfusion";

document.DocumentInformation.CreationDate = DateTime.Now;

document.DocumentInformation.Creator = "Essential PDF";

document.DocumentInformation.Keywords = "PDF";

document.DocumentInformation.Subject = "Document information DEMO";

document.DocumentInformation.Title = "Essential PDF Sample";

//Add a page to the document.

PdfPage page = document.Pages.Add();

//Create PDF graphics for the page.

PdfGraphics graphics = page.Graphics;

//Set the font.

PdfFont font = new PdfStandardFont(PdfFontFamily.Helvetica, 20);

//Draw the text.

graphics.DrawString("Hello World!!!", font, PdfBrushes.Black, new PointF(0, 0));

//Save the document.

document.Save("Output.pdf");

//Close the document.

document.Close(true);

https://help.syncfusion.com/file-formats/pdf/working-with-document#working-with-document-properties

Das benutzerdefinierte Schema kann über den folgenden Link https://help.syncfusion.com/file-formats/pdf/working-with-metadata#adding-custom-schema-to-the-pdf-document erstellt werden

Die gesamte Suite von Steuerelementen ist kostenlos (auch kommerzielle Anwendungen) über das Community-Lizenzprogramm verfügbar , wenn Sie sich qualifizieren (weniger als 1 Million US-Dollar Umsatz). Die Community-Lizenz ist das vollständige Produkt ohne Einschränkungen oder Wasserzeichen.
Hinweis: Ich arbeite für Syncfusion.

Vielen Dank für diese Empfehlung. Ich gebe diese Empfehlung weiter, bevor sich mein Chef für XFINIUM entscheidet.

PDFTron PDFNet SDK unterstützt die vollständige PDF-Erstellung und -Bearbeitung zusammen mit einer vollwertigen plattformübergreifenden Rendering-Engine. Das SDK mit identischer API für die PDF- und Metadatenerstellung ist für Xamarin , Android , UWP , iOS und Web sowie für Linux, Windows (.Net, .NetCore) und macOS verfügbar.

Unsere Vorzeige-App Xodo, die kostenlos in allen mobilen Stores erhältlich ist und auf Android eine Bewertung von 4,7/5 hat, ist eine großartige Möglichkeit, unseren Betrachter zu bewerten. https://play.google.com/store/apps/details?id=com.xodo.pdf.reader

Mit einem einzigen SDK und einer API können Sie also mit Xamarin UWP, Android und, wenn Sie iOS mögen, unterstützen.

Um mit Ihrer Bewertung zu beginnen, beginnen Sie hier. https://www.pdftron.com/documentation/xamarin/guides

Das SDK enthält ein CompleteReader-Beispiel, auf dem die Xodo-App basiert.

Hier ist das Beispiel für die Seiteninhalts-API auf niedriger Ebene, obwohl es andere Möglichkeiten gibt, PDF-Seiteninhalte mit PDFNet zu generieren. https://www.pdftron.com/documentation/samples/xamarin/cs/ElementBuilderTest?platforms=xamarin

Um Schlüsselwörter hinzuzufügen, würden Sie etwa wie folgt vorgehen.pdfdoc.GetDocInfo().SetKeywords("keyword1, keyword2, keyword3");

Schließlich bietet PDFTron volle Evaluierungsunterstützung und kann bei der Migration von Ihrem PDF4NET-Code zu PDFNet behilflich sein.

Vielen Dank für diese Empfehlung. Ich gebe diese Empfehlung weiter, bevor sich mein Chef für XFINIUM entscheidet.