AsciidocFX PDF Engine - FOP 轉換 PDF,預設設定,中文日文韓文字型Noto Sans CJK,Noto Sans Mono CJK,Noto Serif CJK 包含4種樣式(Regular,Italic,Bold,BoldItalic自動下載跟開箱即用。
AsciidocFX issues 上針對匯出包含中文字元內容為 PDF 最常見問題就是以下幾個:
以下將提供最簡單的自動化中文日文韓文字型自動下載跟開箱即用。
解壓縮 asciidocfx-pdf-fop-cjk-patch-0.0.1.zip 或 asciidocfx-pdf-fop-cjk-patch-0.0.1.tar.gz 將目錄 asciidocfx-pdf-fop-cjk-patch-0.0.1 放置到AsciidocFX目錄下。
Important
|
注意以下參數中的
tc 請換成對應你要使用的語言代碼。以下參數中的 FONT LANGUAGE CODE:
|
只需要執行以下指令就能下載字型並且完成設定。
cd AsciidocFX/asciidocfx-pdf-fop-cjk-patch-0.0.1
./install-asciidocfx-pdf-fop-cjk-patch.sh tc
只需要執行以下指令就能下載字型並且完成設定。
Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass
cd AsciidocFX\asciidocfx-pdf-fop-cjk-patch-0.0.1
.\install-asciidocfx-pdf-fop-cjk-patch.ps1 tc
你的 AsciidocFX 的 FOP PDF Engine 已經可以正常匯出包含有中文日文韓文字元的PDF檔案。
刪除 AsciidocFX 下的安裝目錄 asciidocfx-pdf-fop-cjk-patch-0.0.1。
如果你的系統不是 Linux 或 Windows,需要手動安裝的話,以下將說明手動安裝步驟。
└── AsciidocFX
├── asciidocfx-pdf-fop-cjk-patch-0.0.1
│ ├── fo-pdf.xsl.hk
│ ├── fo-pdf.xsl.jp
│ ├── fo-pdf.xsl.kr
│ ├── fo-pdf.xsl.sc
│ ├── fo-pdf.xsl.tc
│ ├── fop.xconf.xml
│ ├── install-asciidocfx-pdf-fop-cjk-patch.ps1
│ ├── install-asciidocfx-pdf-fop-cjk-patch.sh
│ └── LICENSE
└── conf
├── docbook-config
│ ├── fo-pdf.xsl
│ ├── fo-pdf.xsl.org.bak
│ ├── fop.xconf.xml
│ └── fop.xconf.xml.org.bak
└── fonts
└── NotoCJK
├── NotoSansCJKtc-BoldItalic.ttf
├── NotoSansCJKtc-Bold.ttf
├── NotoSansCJKtc-Italic.ttf
├── NotoSansCJKtc-Regular.ttf
├── NotoSansMonoCJKtc-BoldItalic.ttf
├── NotoSansMonoCJKtc-Bold.ttf
├── NotoSansMonoCJKtc-Italic.ttf
├── NotoSansMonoCJKtc-Regular.ttf
├── NotoSerifCJKtc-BoldItalic.ttf
├── NotoSerifCJKtc-Bold.ttf
├── NotoSerifCJKtc-Italic.ttf
└── NotoSerifCJKtc-Regular.ttf
Step 1: 建立子目錄NotoCJK放置字型。
-
在 AsciidocFX / conf / fonts 目錄之下,建立子目錄 NotoCJK 。
Step 2: 下載 NotoCJK 字型TTF檔到 AsciidocFX / conf / fonts / NotoCJK 目錄之下。
-
(Noto Sans CJK,Noto Sans Mono CJK,Noto Serif CJK)包含4種樣式(Regular,Italic,Bold,BoldItalic) 共12個ttf檔案。
-
請根據你的語言下載。
-
下載完成的目錄結構會類似上面。NotoCJK 目錄之下會有 NotoSansCJK*.ttf, NotoSansMonoCJK*.ttf, NotoSerifCJK*.ttf 共12個字型檔案。
Step 3: 備份設定檔案 fo-pdf.xsl 及 fop.xconf.xml。
-
進入 AsciidocFX / conf / docbook-config 目錄
-
將 fo-pdf.xsl 更名為 fo-pdf.xsl.org.bak
-
將 fop.xconf.xml 更名為 fop.xconf.xml.org.bak
Step 4: 複製設定檔 fop.xconf.xml。
-
複製 AsciidocFX / asciidocfx-pdf-fop-cjk-patch-0.0.1 / fop.xconf.xml
-
到 AsciidocFX / conf / docbook-config 目錄下
Step 5: 複製設定檔 fo-pdf.xsl.xx。
-
複製 AsciidocFX / asciidocfx-pdf-fop-cjk-patch-0.0.1 / fo-pdf.xsl.tc
-
到 AsciidocFX / conf / docbook-config 目錄下
-
並且更名為 fo-pdf.xsl
Important
|
注意上述說明的
xx 請換成對應你要使用的語言代碼。以下參數中的 EX: FONT LANGUAGE CODE:
|
Step 6: 刪除安裝目錄 asciidocfx-pdf-fop-cjk-patch-0.0.1。
至此完成設定,你的 AsciidocFX FOP PDF Engine 已經可以正確的匯出包含CJK字元的PDF檔案了。
AsciidocFX / conf / docbook-config / fop.xconf.xml
修改內容, 加入 <directory recursive="true">conf/fonts/NotoCJK</directory>
...
<!-- register all the fonts found in a directory and all of its sub directories (use with care)
<directory recursive="true">C:\MyFonts2</directory> -->
<directory recursive="true">conf/fonts/NotoCJK</directory>
<!-- automatically detect operating system installed fonts -->
<auto-detect/>
</fonts>
...
AsciidocFX / conf / docbook-config / fo-pdf.xsl
修改內容, 加入 Noto Sans CJK TC
, Noto Sans Mono CJK TC
, Noto Serif CJK TC
TC 請換成你自己的語言,例如:JP , Noto Sans CJK JP
, Noto Sans Mono CJK JP
, Noto Serif CJK JP
...
<!-- Enable extensions for FOP version 0.90 and later -->
<xsl:param name="fop1.extensions">1</xsl:param>
<xsl:attribute-set name="header.content.properties">
<xsl:attribute name="font-family">Noto Sans CJK TC,Sans-serif,Arial</xsl:attribute>
<xsl:attribute name="font-size">8pt</xsl:attribute>
</xsl:attribute-set>
<xsl:attribute-set name="footer.content.properties">
<xsl:attribute name="font-family">Noto Sans CJK TC,Sans-serif,Arial</xsl:attribute>
<xsl:attribute name="font-size">8pt</xsl:attribute>
</xsl:attribute-set>
...
<!--
Font selectors
-->
<xsl:template name="pickfont-sans">
<xsl:text>Noto Sans CJK TC,Sans-serif,Arial,Arial Unicode MS,Helvetica,serif,Georgia,Times New Roman</xsl:text>
</xsl:template>
<xsl:template name="pickfont-serif">
<xsl:text>Noto Serif CJK TC,Sans-serif,Arial,Arial Unicode MS,Helvetica,serif,Georgia,Times New Roman</xsl:text>
</xsl:template>
<xsl:template name="pickfont-mono">
<xsl:text>Noto Sans Mono CJK TC,Liberation Mono,Lucida Console,Monaco,Consolas,Courier New,Courier,monospace,Arial Unicode MS,Lucida Sans Unicode</xsl:text>
</xsl:template>
<xsl:template name="pickfont-dingbat">
<xsl:call-template name="pickfont-sans"/>
</xsl:template>
<xsl:template name="pickfont-symbol">
<xsl:text>Symbol,ZapfDingbats,Noto Sans CJK TC</xsl:text>
</xsl:template>
<xsl:template name="pickfont-math">
<xsl:text>Liberation Serif,Sans-serif,serif,Times-Roman</xsl:text>
</xsl:template>
...
AsciidocFX 1.7.6 以後 PDF Engine 預設是 ASCIIDOCTOR (Asciidoctor PDF)。而不是 FOP。
但是你仍然可以將 AsciidocFX PDF Engine 設定為使用 FOP。
,, FOP。
① 點選 AsciidocFX視窗右側頁籤的 Settings
。
② 點選 上面的頁籤的 PDF Settings
。
③ 點選 PDF Converter
/ PDF Engine
下拉選單。
下拉選單 點選 FOP
。
點選 按鈕 Save
。 點選 按鈕 Load
。