Bonjour, j’essaie en vain de modifier la police (avec autre chose que sans-serif) résultant de la fonction
HTMLToPDFTool.toPDF(content);
Lorsque je modifie la police dans mon html avec plusieurs polices, le seul changement que j’arrive à produire est sur “sans-serif”, tout les autres changement de police n’ont aucun impact. Les autres règles css ont pourtant l’air de fonctionner normalement.
<style>
span { font-family: sans-serif; }
</style>
<style> span { font-family: serif; } </style>
ou
<style> span { font-family: Times New Roman; } </style>
ou
<style> span {} </style>
Voilà un exemple de mon html:
<style>
span { font-family: sans-serif; }
</style>
<h3 style='font-size:15px;'><span style="color:#E2000A;"><strong>{Part}</strong>
<img width="62" src="data:image/png;base64,{Image}" alt="image" style="float: right;
"></span>
<p> </p>
<hr size=1 width=100% color=#FF2D00></h3>
Alistair
(Alistair Wheeler)
October 12, 2022, 3:39pm
5
Bonjour Paul-Alexandre,
Le plus simple est sans doute de rajouter un tag <link>
dans le <head>
de ton template html, par exemple avec la police “Noto Serif Ethiopic”
<head>
<meta charset="UTF-8" />
<link href="https://fonts.googleapis.com/css2?family=Noto+Serif+Ethiopic&display=swap" rel="stylesheet">
<style type="text/css">
body {
padding: 15px;
font-size: 11px;
font-family: 'Noto Serif Ethiopic', serif;
}
</style>
</head>
Si cette méthode ne fonctionne pas, tu peux toujours utiliser la librairie sous-jacente au helper HTMLToPDFTool
à savoir openhtmltopdf . Il faudra ajouter par code la ressource qui stocke la police à utiliser.
Il y a un sujet à ce propos sur stackoverflow ici : java - OpenHTMLToPDF: Embed a custom font into PDF created out of HTML - Stack Overflow
Bonjour,
La première méthode ne fonctionne hélas pas. Je vais donc essayer la seconde méthode. J’imagine qu’il n’est pas possible de récupérer le code source du wrapper HTMLToPDFTool?
david
(David AZOULAY)
October 13, 2022, 9:21am
7
Voici (simplifiée) la partie “conversion” via la lib OpenHtmlToPDF que fait le wrapper HTMLToPDFTool
:
import org.jsoup.Jsoup;
import org.jsoup.helper.W3CDom;
import org.w3c.dom.Document;
import com.openhtmltopdf.pdfboxout.PdfRendererBuilder;
(...)
try (ByteArrayOutputStream os = new ByteArrayOutputStream())
{
Document doc = new W3CDom().fromJsoup(Jsoup.parse(html));
new PdfRendererBuilder().toStream(os).withUri(baseURL).withW3cDocument(doc, null).run();
return os.toByteArray();
}
Alistair
(Alistair Wheeler)
October 13, 2022, 9:41am
8
Dans les faits il faut utiliser la méthode useFont dans PdfRendererBuilder et ajouter le fichier .tff (ou autre) de la police souhaitée comme Resource de l’objet qui porte la publication
Ça ressemble donc à quelque chose comme ça :
builder.useFont(getResource("MY_FONT").getDocument(g).getFile(), "my-font");
Et dans le template :
<style type="text/css">
@font-face {
font-family: 'my-font';
font-style: normal;
font-weight: 400;
}
body {
font-family:'my-font', serif;
}
</style>
1 Like
system
(system)
Closed
October 13, 2022, 10:42am
9
This topic was automatically closed 60 minutes after the last reply. New replies are no longer allowed.