Skip to content

Latest commit

 

History

History
292 lines (206 loc) · 9.7 KB

README.adoc

File metadata and controls

292 lines (206 loc) · 9.7 KB

asciidocfx-pdf-fop-cjk-patch

AsciidocFX PDF Engine - FOP 轉換 PDF,預設設定,中文日文韓文字型Noto Sans CJK,Noto Sans Mono CJK,Noto Serif CJK 包含4種樣式(Regular,Italic,Bold,BoldItalic自動下載跟開箱即用。

設定前 - 中文字元不能正常顯示,全部顯示為`#`。套用的是預設的字型。

BeforePatch

安裝設定後 - 中文字元正常顯示,粗體 bold, 斜體italic, 粗斜體 bold italic 全部都能正常顯示。

AfterPatch

如何安裝 asciidocfx-pdf-fop-cjk-patch

解壓縮並放置到AsciidocFX目錄下

解壓縮 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 請換成對應你要使用的語言代碼。

以下參數中的 tc 請換成對應你要使用的語言代碼。

FONT LANGUAGE CODE:

  • sc (Simplified Chinese)

  • tc (Traditional Chinese)

  • hk (Hong Kong)

  • jp (Japanese)

  • kr (Korean)

Install on Linux

只需要執行以下指令就能下載字型並且完成設定。

cd AsciidocFX/asciidocfx-pdf-fop-cjk-patch-0.0.1

./install-asciidocfx-pdf-fop-cjk-patch.sh tc

Install on Windows 10+

只需要執行以下指令就能下載字型並且完成設定。

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 請換成對應你要使用的語言代碼。

以下參數中的 xx 請換成對應你要使用的語言代碼。

EX: fo-pdf.xsl.tcfo-pdf.xsl.sc

FONT LANGUAGE CODE:

  • sc (Simplified Chinese)

  • tc (Traditional Chinese)

  • hk (Hong Kong)

  • jp (Japanese)

  • kr (Korean)

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>

fop.xconf.xml
...
        <!-- 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

fo-pdf.xsl
...
    <!-- 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 PDF Engine 為 FOP

AsciidocFX 1.7.6 以後 PDF Engine 預設是 ASCIIDOCTOR (Asciidoctor PDF)。而不是 FOP。

但是你仍然可以將 AsciidocFX PDF Engine 設定為使用 FOP。

,, FOP。

PDFSetting 001

① 點選 AsciidocFX視窗右側頁籤的 Settings

② 點選 上面的頁籤的 PDF Settings

③ 點選 PDF Converter / PDF Engine 下拉選單。

下拉選單 點選 FOP

Drop-down menu, click on the FOP option

PDFSetting 002

點選 按鈕 Save。 點選 按鈕 Load

Click Done and click Save. Then click Load.

PDFSetting 003

License

MIT