HINWEISE: Meine Anfrage bezieht sich auf Software oder Bibliotheken, daher poste ich hier. Ich habe auch die ähnlichen Threads hier überprüft, aber sie haben nach etwas subtil anderem gefragt.
Ich habe folgende HTML-Seite:
<html>
<head>
<link rel="stylesheet" type="text/css" href="font.css">
<style>
body {
font-family: "Gotham SSm A";
font-size: 22px;
}
</style>
</head>
<body>
SUMMARY
</body>
</html>
Und die Schriftdefinition in font.css (der Kürze halber abgeschnitten):
@font-face {
font-family: "Gotham SSm A";
src: url(data:font/truetype;base64,...) format('truetype');
font-weight:700;
font-style:italic;
}
Die Seite wird im Browser gut angezeigt, und wenn sie aus dem Browser als PDF gedruckt wird, wird sie auch gut gerendert. Jedes Dienstprogramm, mit dem ich ein PDF aus serverseitiger Software (PHP) generiert habe, ist jedoch fehlgeschlagen:
Was sind meine Alternativen? Ich brauche das um...
1. Respect modern CSS (including @font-face).
2. Be available on Windows & Linux with similar output on both
3. Be offline (utility or library is fine)
4. Allow commercial use
5. Be cost effective (preferably free)
Ich konnte das von Ihnen angegebene CSS-Beispiel nicht dazu bringen, irgendetwas in meinem Browser zu tun, also konnte ich es nicht testen, aber ich schlage vor, dass Sie pandoc ausprobieren .
Beachten Sie, dass ich Ihr Beispiel ohne die tatsächliche URL der Schriftart im CSS nicht einmal in einem Browser testen kann. Ich würde empfehlen, einen Fallback mit Schriftstapeln in Ihrem CSS zu haben. Ich habe es geschafft, eine Online-Quelle für die von Ihnen angegebene Schriftart zu finden, aber es handelt sich um eine kostenpflichtige Option, sodass die meisten hier nicht in der Lage sein werden, zu helfen, vermute ich.
Es wird dringend empfohlen, Schriftartstapel zu verwenden , um Fallback-Optionen bereitzustellen. Empfohlene Fallbacks sind „Helvetica Neue“, Helvetica, Arial, serifenlos.
Ändern Sie Ihr Beispiel in:
<html>
<head>
<link rel="stylesheet" type="text/css" href="font.css">
<style>
body {
font-family: "Gotham SSm A", “Helvetica Neue”, Helvetica, Arial, sans-serif;
font-size: 22px;
}
</style>
</head>
<body>
SUMMARY
</body>
</html>
Oder die lokale Installation der Schriftart kann durchaus hilfreich sein.
Pandoc wurde schon erwähnt...
...aber auch PrinceXML ist ein starker Anwärter.
Während Pandoc Freie Software ist, ist PrinceXML proprietär (obwohl es für private Zwecke kostenlos verwendet werden kann). PrinceXML ist wirklich stark, wenn es um CSS-Unterstützung geht, und es führt nur eine HTML/XML/CSS-Konvertierung in PDF durch (ohne dass andere externe Bibliotheken erforderlich sind).
Pandoc benötigt LaTeX, um PDFs zu erstellen, aber Pandoc kann auch viele andere Dokumentformatkonvertierungen erreichen (man könnte es das "Schweizer Taschenmesser" der Dokumentkonvertierung nennen).
Aktualisieren:
Hab gerade beim Update des OP gemerkt, dass er PrinceXML schon getestet hatte und war enttäuscht. Dies könnte wahrscheinlich debuggt werden, wenn die Eingabedatei (en) irgendwie verfügbar wäre, um es zu reproduzieren.
Pandoc hat er auch ausprobiert... ja, unter Windows benötigt es eine zusätzliche MikTeX-Installation, damit es HTML in PDF umwandeln kann.
R. Barzell
R. Barzell
Steve Barnes
R. Barzell