Skip to content

AsciidocFX 1.7.6+, Please Use https://github.com/life888888/asciidoctor-pdf-cjk-ext#asciidocfx , Can make AsciidocFX export PDF to display Chinese, Japanese, Korean characters normally and Bold Italic Italic Bold Italic Bold Italic Patch setting automation command.

License

Notifications You must be signed in to change notification settings

life888888/asciidocfx-pdf-fop-cjk-patch

Repository files navigation

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

About

AsciidocFX 1.7.6+, Please Use https://github.com/life888888/asciidoctor-pdf-cjk-ext#asciidocfx , Can make AsciidocFX export PDF to display Chinese, Japanese, Korean characters normally and Bold Italic Italic Bold Italic Bold Italic Patch setting automation command.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published