Laravel:9.52.7
laravel-dompdf: 2.0.1
使用 laravel-dompdf 產出的 pdf 檔案,幾個熱門瀏覽器點開都沒有問題、Google Drive 也可以,下載幾個免費的 pdf reader 也都正常,唯獨 adobe 的 pdf reader 中文是亂碼,但感覺用這套的人可能不少,需要上來請教解方。
edge
Adobe PDF Reader
web.php
Route::get('pdf', function () {
$pdf = \Barryvdh\DomPDF\Facade\Pdf::loadView('pdf');
$pdf->save(storage_path('pdf/test.pdf'));
return response()->download(storage_path('/pdf/test.pdf'))->deleteFileAfterSend();
});
pdf.blade.php
<!doctype html>
<html>
<head>
<meta charset="UTF-8">
<title>Document</title>
<style>
@font-face {
font-family: "Noto Serif TC";
src: url('{{ storage_path("fonts/NotoSerifTC-Bold.otf") }}') format('truetype');
font-weight: bold;
font-style: normal;
}
@font-face {
font-family: "Noto Serif TC";
src: url('{{ storage_path("fonts/NotoSerifTC-Regular.otf") }}') format('truetype');
font-weight: normal;
font-style: normal;
}
.container {
font-family: "Noto Serif TC", serif;
position: relative;
}
body {
overflow-wrap: anywhere;
margin: 0;
font-family: "Noto Serif TC";
}
html {
margin: 0;
}
header, footer {
width: 100%;
height: 100px;
background: gray;
color: white;
text-align: center;
}
footer {
bottom: 0;
position: absolute;
}
.page-break {
page-break-after: always;
}
</style>
</head>
<body>
<div class="container">
<header>I am header</header>
<p style="width: 400px; margin: 0 auto 0 auto;">
腳中傳便行費不神顧東切,性學司可表心重只水從自形以料持起,長天趣是營美發,指具高神去深節性國大男地標政停動與?件們生天們參身一,跑會多考提,醫當意行到天留會我工新腳和故清發部教親作,天三為金市的故,景同不重你人道山一然時之裡謝定其到結專過民股主知一……造種東正房,草的心變道發簡怕名為要技就生,在行已星係破雖心家作不白營於重一都不都別發向及。
腳中傳便行費不神顧東切,性學司可表心重只水從自形以料持起,長天趣是營美發,指具高神去深節性國大男地標政停動與?件們生天們參身一,跑會多考提,醫當意行到天留會我工新腳和故清發部教親作,天三為金市的故,景同不重你人道山一然時之裡謝定其到結專過民股主知一……造種東正房,草的心變道發簡怕名為要技就生,在行已星係破雖心家作不白營於重一都不都別發向及。
腳中傳便行費不神顧東切,性學司可表心重只水從自形以料持起,長天趣是營美發,指具高神去深節性國大男地標政停動與?件們生天們參身一,跑會多考提,醫當意行到天留會我工新腳和故清發部教親作,天三為金市的故,景同不重你人道山一然時之裡謝定其到結專過民股主知一……造種東正房,草的心變道發簡怕名為要技就生,在行已星係破雖心家作不白營於重一都不都別發向及。
</p>
<footer>I am footer</footer>
<div class="page-break"></div>
<header>I am header</header>
<p style="width: 400px; margin: 0 auto 0 auto;">
next content</p>
<footer>I am footer</footer>
</div>
</body>
</html>
目前 PHP 幾個主要的 PDF 函式庫並不支援 OTF 格式
這也包含 dompdf
因此使用前要自行把 otf 轉換成 ttf 格式
剛剛我找到 otf2ttf(python script)
轉成 TTF 之後就正常了:
pip install otf2ttf
otf2ttf -o output.ttf input.otf
(自行替換 input 與 output)多謝提供資訊,沒注意到這個設定,檔案從 9MB 變成 750KB XDDD,而且肉眼沒看到什麼明顯的跑版
「趣」的位置會偏右
剛好你提供的範例會遇到這問題
昨天我才修正發 pull request
https://github.com/dompdf/php-font-lib/pull/122
被納入修正了耶,感謝你的付出!
請問你下載的adobe pdf reader是英文版的嗎?
建議可以下載中文版或是 All Language (MUI) 版:
https://get.adobe.com/tw/reader/enterprise/
或者是英文版再加上Font Pack試看看:
https://helpx.adobe.com/in/acrobat/kb/windows-font-packs-32-bit-reader.html#Requirements
大大用的Acrobat Reader是多少版呢?
沒多久前Acrobat Reader出問題,部分元件顯示的中文出現亂碼
前幾日出了最新版後,狀況就解除了