Was sind die geheimen Optionen des PDF-Konvertierungstools von OS X?

Ich habe kürzlich das /System/Library/Printers/Libraries/convertTool entdeckt, das HTML, DOC, ... in PDF konvertieren kann.

Es funktioniert großartig, hat aber einige optionale Argumente, die nicht dokumentiert sind: -a 'name=value ...'. Ich interessiere mich wirklich für sie, weil diese mehr vom "Druck"-Prozess steuern sollen.

/System/Library/Printers/Libraries/convert
Usage: convert [ options ]

Options:

  -e                   Use every filter from the PPD file
  -f filename          Set file to be converted (otherwise stdin)
  -o filename          Set file to be generated (otherwise stdout)
  -i mime/type         Set input MIME type (otherwise auto-typed)
  -j mime/type         Set output MIME type (otherwise application/pdf)
  -P filename.ppd      Set PPD file
  -a 'name=value ...'  Set option(s)
  -U username          Set username for job
  -J title             Set title
  -c copies            Set number of copies
  -u                   Remove the PPD file when finished
  -D                   Remove the input file when finished
LOL, ich habe die Datei überprüft, in der Hoffnung, dass ich einige Parameter in der Binärdatei finden könnte, und ich habe entdeckt, dass es sich um einen symbolischen Link zu cupsfilter. Die Frage bleibt, ich möchte sehen, welche Optionen ich hinzufügen kann, wenn ich HTML in PDF konvertiere.
Ich habe auch ein anderes Tool entdeckt, das leistungsfähiger sein könnte textutil.
HINWEIS: Seit mindestens 10.14 existiert „convert“ nicht und cupsfilter kann keine .docx-Dateien konvertierencupsfilter: Unable to determine MIME type of "abc.docx"
HINWEIS: textutil konvertiert derzeit nicht in pdf.

Antworten (2)

Die Optionen für das CUPS-System bestehen hauptsächlich darin, Ränder, Seitenränder, wie viele Seiten pro Blatt usw. festzulegen. Sie sind auf der CUPS-Website dokumentiert:

http://www.cups.org/documentation.php/options.html

Siehe meine eigene Antwort: Die Liste der auf der CUPS-Website dokumentierten Optionen ist nicht vollständig. CUPS unterstützt auch fast alle IPP-definierten Optionen, die auf der Website der IANA-Registrierungsstelle für IPP aufgelistet sind . Die meisten "gebräuchlichen" Optionsnamen, die auf der CUPS-Website aufgeführt sind, entsprechen jedoch einem standardmäßigen IPP-Optionsnamen.

Was Sie sehen, ist ein symbolischer Link zu /usr/sbin/cupsfilter.

cupsfilterist in der entsprechenden Manpage dokumentiert.

Sein Zweck besteht darin, es Ihnen zu ermöglichen, dieselbe Filterkette manuell auszuführen, die CUPS für eine bestimmte Druckwarteschlange ausführen würde, wenn ein bestimmtes Eingabedokument verarbeitet wird. Auf diese Weise können Sie die Ergebnisse überprüfen und debuggen, bevor/ohne den Auftrag an den eigentlichen Drucker zu senden.

Natürlich können Sie das Dienstprogramm auch "missbrauchen", um Dateien in ein beliebiges Ausgabeformat zu konvertieren (sofern von CUPS unterstützt).

In Bezug auf (das direkte -o name=valueAusführen cupsfilterverwendet diese Syntax): Grundsätzlich ist es jede Option, die Sie mit dem Druckbefehl angeben können, z. B. lpoder lprwenn Sie von der Shell aus drucken.

Einige ausgewählte Beispiele:

-o media=A4                   # define the media size
-o fit-to-page=true           # request scaling of content to fit media
-o page-ranges=1-4,7,9-12     # select pages to be extracted
-o number-up=4                # request multiple logical pages on physical page
-o number-up-layout=tblr      # set the sorting of logical pages
                              #   (first top-to-bottom, then left-to-right)
-o page-border=single-thick   # request page borders to be drawn
-o outputorder=reverse        # request reverse output border

Weitere Informationen zu möglichen Optionen:

  1. Alle von CUPS unterstützten allgemeinen Optionen sind hier dokumentiert:
    http://www.cups.org/documentation.php/doc-2.1/options.html

  2. Alle druckwarteschlangenspezifischen Optionen (wie sie in der zugehörigen PPD hinterlegt sind) können aus den Ausgaben dieses Befehls abgeleitet werden:

    lpoptions -l -d <name-of-printqueue>
    
  3. Die Namen aller IPP-definierten (Internet Printing Protocol) Auftragsoptionen sind hier aufgelistet: http://www.iana.org/assignments/ipp-registrations/ipp-registrations.xhtml