Konvertieren von HTML in PDF mit dem Konvertierungsprogramm in Mac OS X

Ich versuche, eine Reihe von HTML-Dateien in PDF-Dateien zu konvertieren. Ich suche nach einer automatisierten Lösung, damit ich nicht jede HTML-Datei einzeln öffnen und in PDF konvertieren muss. In Mac OSX kann convertdas Dienstprogramm verwendet werden, um HTML-Dateien in PDF zu konvertieren. Ich stehe vor zwei Problemen.

  1. convertDienstprogramm wendet den CSS-Stil nicht auf generierte PDF-Inhalte an.
  2. Mein AppleScript für die Stapelkonvertierung funktioniert nicht.

Hier ist mein AppleScript:

on open input_documents
    repeat with this_document in input_documents

        if this_document is not document file then
            set this_document_path to POSIX path of this_document
            do shell script "/System/Library/Printers/Libraries/convert -f " & quoted form of this_document_path & " -o " & quoted form of this_document_path & ".pdf"
        end if
    end repeat
end open

Ich verwende dieses Skript, um eine .app zu erstellen, und ziehe dann den Dokumentenordner auf die generierte .app-Datei. Beachten Sie, dass alle mit Bildern verknüpften Bilder in einem Unterverzeichnis/Unterordner abgelegt werden. Meine Dokumentenstruktur sieht so aus:

/HTML
/HTML/Images/
/HTML/a.html
/HTML/b.html

Irgendwelche Vorschläge?

@Mustafa Sie sollten Cross-Posting vermeiden – bitten Sie einen Moderator, es für Sie zu migrieren.
Ich glaube, Stackoverflow hat mehr Sichtbarkeit als Stackexchange. Duplizieren wird nicht schaden, es könnte nur für mich funktionieren.
Hast du in den textutilBefehl geschaut? Es unterstützt auch HTML.
@mankoff, das habe ich. Die Konvertierung von HTML-Dateien in PDF wird nicht unterstützt. Es unterstützt: txt, html, rtf, rtfd, doc, docx, wordml, odt oder webarchive

Antworten (2)

Werfen Sie einen Blick auf wkhtmltopdf – ein Befehlszeilenprogramm, das die WebKit-Rendering-Engine verwendet, um PDFs aus HTML zu erstellen. Ich habe festgestellt, dass es ein schöneres Ergebnis erzeugt. Sie sollten keine Probleme haben, es in Ihr aktuelles Skript zu integrieren.

Gerade gelaufen ./wkhtmltopdf *.html *.pdfund es hat super funktioniert, mit einer Ausnahme. Es erzeugte eine "*.pdf"-Datei anstelle von separaten Dateien für jedes HTML. Wissen Sie, ob dieses Dienstprogramm das Generieren separater Dateien unterstützt? Vielen Dank.
Hallo Mustafa, versuche so etwas wie (in einem Verzeichnis von HTML-Dateien) for f in *.html; do wkhtmltopdf $f "$f.pdf"; done, um die Dateien in einem Verzeichnis zu durchlaufen.
Mit einer kleinen Modifikation zB for f in *.html; do ./wkhtmltopdf "$f" "$f.pdf"funktioniert es wunderbar. Vielen Dank.

Haben Sie darüber nachgedacht, ein AppleScript-Skript zu schreiben, um jede HTML-Datei in einem skriptfähigen Webbrowser (wie Safari) zu öffnen und dann den Standard-Druckbefehl des Browsers zu verwenden, um in eine PDF-Datei zu drucken?

Hm, ich bin nicht so gut mit AppleScript :) Tatsächlich habe ich in letzter Zeit nur Hello World-ähnliche Sachen in AppleScript gemacht.
Der Befehl "Bildschirm drucken" von Chrome auf bestimmten Websites (z. B. dieser Website) erzeugt keine exakte Kopie des HTML-Codes auf der Website. Daher kann je nach Bedarf die genauere wkhtmltopdf-Lösung erforderlich sein.