顯示具有 DOS 標籤的文章。 顯示所有文章
顯示具有 DOS 標籤的文章。 顯示所有文章

PDFtk(PDF Toolkit)介紹

 PDFtk 是一款免費、開源的 PDF 處理工具,支持在命令列中對 PDF 進行多種操作,如拆分、合併、加密、解密和檢查 PDF 文件屬性。


📌 PDFtk 安裝

Windows

  1. 下載並安裝 PDFtk Server:

    • 官網下載:PDFtk Server(Windows 版本)。

    • 安裝後,將 PDFtk 安裝目錄(如 C:\Program Files (x86)\PDFtk Server\bin)加入系統環境變數 PATH。

macOS / Linux

  • 在 macOS 或 Linux 上,通常可以透過 Homebrew 安裝:

    brew install pdftk-java

📌 PDFtk 基本使用方法

以下是一些常用的 PDFtk 指令和範例:

1. 檢查 PDF 屬性

  • 指令:

    pdftk yourfile.pdf dump_data
  • 範例:

    pdftk example.pdf dump_data
  • 效果:這會顯示 PDF 的基本屬性(頁數、加密狀態、標題、作者等)。


2. 分割 PDF

  • 指令:

    pdftk yourfile.pdf burst
  • 範例:

    pdftk example.pdf burst
  • 效果:將 PDF 內每一頁分割成獨立檔案。


3. 合併 PDF

  • 指令:

    pdftk file1.pdf file2.pdf cat output merged.pdf
  • 範例:

    pdftk page1.pdf page2.pdf cat output combined.pdf
  • 效果:將兩個 PDF 文件合併為一個。


4. 提取特定頁面

  • 指令:

    pdftk yourfile.pdf cat 1-3 output output.pdf
  • 範例:

    pdftk example.pdf cat 2-4 output extracted.pdf
  • 效果:從第 2 到第 4 頁提取,生成新 PDF。


5. 加密 PDF

  • 指令:

    pdftk yourfile.pdf output secured.pdf owner_pw your_password
  • 範例:

    pdftk example.pdf output secured.pdf owner_pw 1234
  • 效果:為 PDF 添加密碼保護(擁有者密碼)。


6. 檢查 PDF 是否是文字或影像型

雖然 PDFtk 無法直接判斷 PDF 是文字型還是影像型,但你可以結合指令進行檢測:

  • 指令:

    pdftk example.pdf dump_data | grep -i text
  • 說明:

    • 如果檔案是文字型 PDF,則應該會顯示與「文字」或「字型」相關的內容。

    • 如果是純影像型,則很可能不會有這類資料。


📌 更進階應用:批次處理

  • 如果你有大量 PDF 檔案要檢查或處理,可以使用 Bash 或批次檔:

    for file in *.pdf; do
    pdftk "$file" dump_data | grep -i text && echo "$file 是文字型 PDF" || echo "$file 是影像型 PDF" done
  • 效果:此腳本會逐一檢查目錄下所有 PDF,並顯示每個檔案的類型。


進階應用:

使用 PDFtk 與 OCR 工具將影像型 PDF 轉為文字型 PDF

PDFtk 本身無法進行光學字符辨識(OCR),但可以與其他 OCR 工具(如 Tesseract)搭配來將影像型 PDF 轉為文字型 PDF。以下我將教你如何結合 PDFtk 和 Tesseract OCR 來實現這個功能。


📌 必備工具

  1. PDFtk(已安裝)

  2. Tesseract OCR

  3. Poppler(pdftoppm 和 pdftotext)

    • 用於將 PDF 頁面轉為影像格式,方便 OCR 處理。

    • Windows:從 Poppler for Windows 下載並設定 PATH。

    • macOS/Linux:

      brew install poppler

📌 PDFtk + Tesseract + Poppler:OCR 工作流程

  1. 使用 PDFtk 分割 PDF 頁面

  2. 將每頁 PDF 轉為影像格式(如 PNG)

  3. 使用 Tesseract OCR 將影像轉為文字

  4. 將 OCR 結果合併成文字型 PDF


📌 步驟詳解與範例

步驟 1:使用 PDFtk 分割 PDF

  • 假設我們有一個影像型 PDF 檔案:scanned_document.pdf。

  • 指令:

    pdftk scanned_document.pdf burst
  • 效果:這會將每一頁分割成單獨 PDF(pg_0001.pdf、pg_0002.pdf...)。


步驟 2:將 PDF 頁面轉為影像格式

  • 使用 pdftoppm 將分割的 PDF 頁面轉為 PNG 影像。

  • 指令:

    pdftoppm pg_0001.pdf page_0001 -png
  • 效果:這會將 PDF 第一頁轉成影像檔 page_0001.png。


步驟 3:使用 Tesseract 進行 OCR

  • 對影像檔執行 OCR:

    tesseract page_0001.png page_0001_ocr -l eng --dpi 300 pdf
  • 解釋:

    • -l eng:使用英文語言庫(可更改為其他語言)。

    • --dpi 300:設定 DPI 為 300,提升識別效果。

    • pdf:輸出格式為 PDF。

  • 效果:產生 page_0001_ocr.pdf,這是已進行 OCR 的文字型 PDF。


步驟 4:合併所有 OCR PDF

  • 如果你有多頁 PDF,可以將它們合併為單一 PDF:

    pdftk page_0001_ocr.pdf page_0002_ocr.pdf cat output final_ocr_document.pdf
  • 效果:這會將所有 OCR 處理過的頁面合併成一個完整的文字型 PDF。


📌 自動化腳本(進階)

如果你需要處理大量 PDF,可以考慮使用 Bash 腳本(Linux/macOS)或批次檔(Windows)來自動化流程。

範例:Bash 腳本

#!/bin/bash
# 檢查是否提供 PDF 檔名 if [ -z "$1" ]; then echo "請提供 PDF 檔案名稱。" exit 1 fi # 變數設置 input_pdf="$1" output_pdf="ocr_$1" mkdir temp_ocr # 使用 PDFtk 分割 PDF pdftk "$input_pdf" burst output temp_ocr/page_%04d.pdf # 將每一頁進行 OCR for file in temp_ocr/*.pdf; do page=$(basename "$file" .pdf) pdftoppm "$file" temp_ocr/$page -png tesseract temp_ocr/${page}-1.png temp_ocr/${page}_ocr -l eng --dpi 300 pdf done # 合併所有 OCR 頁面 pdftk temp_ocr/*_ocr.pdf cat output "$output_pdf" # 清理暫存檔 rm -rf temp_ocr echo "OCR 完成,輸出檔:$output_pdf"
  • 如何使用:

    1. 將上述腳本儲存為 ocr_pdf.sh。

    2. 賦予可執行權限:


      chmod +x ocr_pdf.sh
    3. 執行腳本:


      ./ocr_pdf.sh your_scanned_document.pdf
  • 效果:會自動將你的影像型 PDF 轉為文字型 PDF,並輸出為 ocr_your_scanned_document.pdf。


📌 這樣的腳本應用優點

  • 可處理大量 PDF。

  • 可輕鬆改成批次檔(Windows)。

  • 可調整 Tesseract 語言庫,支援多語言 OCR(如繁中、簡中)。


📌 Windows 批次檔:PDFtk + Tesseract OCR 自動化

📌 檔案名稱:OCR_PDF.bat

這個批次檔會自動:

  1. 使用 PDFtk 分割 PDF 頁面。

  2. 使用 Poppler 將每頁轉為 PNG 影像。

  3. 使用 Tesseract OCR 進行辨識。

  4. 合併所有 OCR 頁面為文字型 PDF。


📌 批次檔內容

@echo off
setlocal enabledelayedexpansion :: 檢查 PDFtk, Tesseract, 和 Poppler 是否已安裝 where pdftk >nul 2>&1 || (echo PDFtk 未安裝,請確認已安裝並設定環境變數 & exit /b) where tesseract >nul 2>&1 || (echo Tesseract 未安裝,請確認已安裝並設定環境變數 & exit /b) where pdftoppm >nul 2>&1 || (echo Poppler 未安裝,請確認已安裝並設定環境變數 & exit /b) :: 請使用者選擇 PDF 檔案 set /p input_pdf=請輸入要進行 OCR 的 PDF 檔案名稱(包括副檔名): if not exist "%input_pdf%" ( echo 找不到檔案:%input_pdf% exit /b ) :: 建立臨時資料夾 set temp_dir=temp_ocr mkdir %temp_dir% :: 使用 PDFtk 分割 PDF 頁面 pdftk "%input_pdf%" burst output %temp_dir%\page_%%04d.pdf :: OCR 每一頁 for %%f in (%temp_dir%\*.pdf) do ( set filename=%%~nf pdftoppm "%%f" "%temp_dir%\!filename!" -png tesseract "%temp_dir%\!filename!-1.png" "%temp_dir%\!filename!_ocr" -l eng --dpi 300 pdf ) :: 合併所有 OCR 文字型 PDF pdftk %temp_dir%\*_ocr.pdf cat output "OCR_%input_pdf%" :: 清理臨時資料夾 rmdir /s /q %temp_dir% echo OCR 完成,輸出檔:OCR_%input_pdf% pause

📌 使用說明

  1. 將這段程式碼儲存為 OCR_PDF.bat。

  2. 確保你已安裝:

    • PDFtk Server 並已設定在環境變數中。

    • Tesseract OCR 並已設定在環境變數中。

    • Poppler(pdftoppm) 並已設定在環境變數中。

  3. 將要進行 OCR 的 PDF 檔案與批次檔放在同一資料夾中。

  4. 雙擊 OCR_PDF.bat,並輸入 PDF 檔案名稱(含副檔名)。


📌 使用範例

假設你有一個名為 scanned_document.pdf 的影像型 PDF:

  1. 將 scanned_document.pdf 與 OCR_PDF.bat 放在同一資料夾。

  2. 雙擊 OCR_PDF.bat,輸入:

    mathematica

    請輸入要進行 OCR 的 PDF 檔案名稱(包括副檔名):scanned_document.pdf
  3. 程式會自動:

    • 分割 PDF 為單獨頁面。

    • 將每頁轉為 PNG 影像。

    • 使用 Tesseract OCR 進行辨識。

    • 將所有 OCR 頁面合併為單一文字型 PDF,檔名為 OCR_scanned_document.pdf。


📌 可調整選項

  • 語言設定:

    • 預設為英文(-l eng)。如需其他語言(如繁中),請下載 Tesseract 語言庫,並修改這一行:

      batch

      tesseract "%temp_dir%\!filename!-1.png" "%temp_dir%\!filename!_ocr" -l chi_tra --dpi 300 pdf
  • DPI(解析度):

    • 預設為 300 DPI,可視需求調整:

      --dpi 300
First Post : 2025/05/16

財政部營業稅電子申報繳稅軟體的“更新” - 201908

就如財政部網站的通告:107年12月4日發布,下列檔案將自108年8月起(申報108年7月營業稅) …

圖一:

格式調整…

這事情對資訊人員來說,可是“大事情”。
畢竟,資訊單位需要負起公司資訊系統的“完整”運作!
可惜的,使用的單位是:財務單位的同事;會接到通知的,也是他們。

最後,被告知“不能用”的時間,已經是 2019/08 — 財政部新系統上線之後!
此時,資訊人員只能緊急應對,排除問題;並默默接受這事實了!!

還好,這次的變更對公司的影響不太大,
還可以在不改系統的請況下,”手動“ 調整。

首先,來看現今 ERP 轉出資料檔案的範例

圖二:

相同的檔案,若是配合 Notepad++ 來觀看,就會發現
相同“寬度”的文字資料,既然呈現出不同“長度”的情形。(還好有工具可以應用!)

圖三:

比較之後,備註說明如下圖示(圖四)

因為,公司電子申報只有使用到 TXT 格式,所以影響不大

接下來,還是說明要如何“手動”調整資料!!

請先回頭觀看第三個圖示,是不是看看兩個黑框文字:CR、LF
CR:Carriage Return,\r,0x0D — 回到一行字的起頭
LF:Line Feed,\n,0x0A — 換到下一行 (就像按下 向下鍵 的意思,沒有回到一行字的起頭 效果!)
所以,我們在編輯資料時,按下 Enter(換行),就是 CR、LF 效果的整合。

當你看到(圖四)的問題說明後,你可能會想 — 將每行不足的空白補上就好。
是的,資料筆數不多時,用手動動就好。
若是,筆數太多??      就要靠工具程式來處理 —— Notepad++

使用“取代”功能 — Ctrl + H

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
相關規格文件,可以在 財政部電子申報繳稅服務網 下載
首頁 》營業稅 》軟體下載與報稅

【營業稅 營業人進銷項資料檔】規格,在該檔案的 38 頁
各別欄位的要求及說明,則在 16~22 頁
請特別留意:檔案內容:81 Bytes

First Posted - 2019/10/05

Windows 作業系統的【啟動】目錄位置

這次,讓我們來了解一個話題:Windows 作業系統的【啟動】目錄位置

image

從上圖的圖形資料可以看到,Windows 作業系統的的【啟動】目錄,可以分成兩種:

  1. 所有使用者 (All Users)
  2. 現有使用者 (Current User)

因為使用者不同,所以相對【啟動】目錄的存取路徑,也就會不一樣!!


有的基本認識後,再來談談要如何切換到【啟動】目錄區的位置中?

要進入、切換【啟動】目錄,需要執行【執行 Run】程式;
方法:Window 功能鍵 + R 
參考:Win10 的23個功能按鍵與電腦“行動熱點”的設定

並且,下指令:

  1. 所有使用者 (All Users)         ──  shell:common startup
  2. 現有使用者 (Current User)   ──  shell:startup

接下來,談論的內容和程式自動化、批次處理有關,看不懂的話,也不用太在意!!


因為要 程式自動化、批次處理,所以就不可能“手動”切換到相對的目錄區裡。
因此,就一定要知道【啟動】目錄的“路徑”所在。

  1. 所有使用者 (All Users)         ──  %programdata%\Microsoft\Windows\Start Menu\Programs\Startup
  2. 現有使用者 (Current User)   ──  %appdata%\Microsoft\Windows\Start Menu\Programs\Startup

探討 koma-script 的資訊

koma-script 是一組多功能的類別和宏包組合。其說明資料中,是這麽說:【 koma-script - A bundle of versatile classes and packages】

學到 (La)Tex 的人,一定知道 TexDoc 工具程式可以用來查詢任何 (La)Tex 指令的用法與說明。
例如:texdoc geometry

image

同樣的道理,你也可以用來查詢 koma-script
texdoc koma-script

不過,你卻得到下列訊息:
Documentation for koma-script could not be found.

會遇到這個問題,主要是因為你的 (La)Tex 使用環境,還沒使用過 koma-script 相對應地宏包所致!
koma-script 並不是 (La)Tex 標準安裝項目,所以要使用過一次相對應地宏包後,系統才會加以安裝相關環境、檔案。

要有 koma-script 功能,就要引用 typearea 宏包 (package)。
請先執行一次,含有 \usepackage{typearea} 的Tex 文檔後,
在執行 texdoc koma-script

image

完成編譯 Bibliographic Databases 的範例(LaTeX Tutorials – A Primer [Indian TUG])

在 LaTeX Tutorials – A Primer [Indian TeX Users Group] 的學習資料裡,有一個章節有介紹 Bibliographic Databases 的觀念及用法。
其中有範例說明;但是,若要編譯該範例時,卻又會遇到一些問題,無法正常運作。

本文,將就此一章節的範例可能會遇到的問題,逐一說明,希望對你的學習有所幫助。

大問題:缺少相關必要的檔案

  1. bsample.bib
  2. bibnames.sty  這是編譯 參考文獻 檔案後,延伸出的必要檔案;你可以在 sample.bbl 裡面,看到 \input{bibnames.sty} 指令。

上述檔案,可以在下列連結裡下載:

  1. bsample.bib  http://bit.ly/2ANKjYe    http://staff-www.uni-marburg.de/~haas/latex/samples/bsample.bib
  2. bibnames.sty  http://bit.ly/2vAn7an   http://mirrors.ctan.org/info/biblio/bibnames.sty

將這些必要的檔案下載後,就可以使用 TeXworks 直接編譯 sample.tex 檔案。

不要忘記,文章中提及的編譯四步驟:

  1. xelatex sample              % 1st run of LaTeX
  2. bibtex sample                % BibTeX run,Then sample.bbl file will be produced
  3. xelatex sample              % 2nd run of LaTeX
  4. xelatex sample              % 3rd run of LaTeX

如此,就可以順利編譯出 sample.pdf 。

不過,進行到這裡,還有一些 小問題 存在~~

image

上面是正確範例結果的截圖;若是你現在看你完成的 pdf 檔案,會發現在紅框的位置,是個 問號 ? 不是數字 7。

因為,小問題就是發生在範例文字有拼錯的情形!

image

請修正後,再次編譯,看看新的結果。
正確的 sample.pdf    http://bit.ly/2vjrDKS


學習進行到此,我們還是以 TeXworks 當操作環境。

接下來,我們將以另外一種環境來編譯此一範例 --- DOS Command Line

首先,將上面提到的編譯四步驟的指令,出存成  sample.cmd 。(或是 sample.bat)

執行 sample.cmd 檔;
若是你還沒修改 小問題 -- 拼字錯誤,就會得到下列的兩個錯誤提醒;
若是你已經修改這 小問題 -- 拼字錯誤,就只會得到 一個 錯誤提醒。(第二個 Warring )

D:\學習\資訊、科技\LaTeX\LaTeX Tutorial - A Primer>bibtex sample
This is BibTeX, Version 0.99d (MiKTeX 2.9.6745)
The top-level auxiliary file: sample.aux
The style file: plain.bst
Database file #1: bsample.bib
Warning--I didn't find a database entry for "Mittlebatch/Schoepf:1990"
Warning--empty volume in Wood:color's crossref of Roth:postscript
(There were 2 warnings)

接下來,讓我們來排除第二個錯誤提醒吧 !!

** 修改 bsample.bib ,這問題可能和 LaTeX 的環境有關,直接修改即可。

image

認識 希伯來文 Unicode 的字碼與應用(四)

讓我們繼續延伸【認識 希伯來文 Unicode 的字碼與應用(一)】、【認識 希伯來文 Unicode 的字碼與應用(二)】、【認識 希伯來文 Unicode 的字碼與應用(三)】的內容。

首先,讓我們先看一張圖表資料:

字母:

1488 ~ 1514
1 א 1488 13 ם 1501
2 ב 1489 13 מ 1502
3 ג 1490 14
ן
1503
4 ד 1491 14 נ 1504
5 ה 1492 15 ס 1505
6 ו 1493 16 ע 1506
7 ז 1494 17 ף 1507
8 ח 1495 17 פ 1508
9 ט 1496 18 ץ 1509
10 י 1497 18 צ 1510
11 ך 1498 19 ק 1511
11 כ 1499 20 ר 1512
12 ל 1500 21 ש 1513
22 ת 1514


這是一張希伯來文字母與 UniCode 數值的對應表。含括有 22個字母及 5個字尾字母,共 27個。
由表中可以看出,每個字母會對應到一個 UniCode 數字,例如:(א)–1488 ,(פ)-1508。

今天,要學的公式是 = UNICODE()
例如: = UNICODE(“א”) 會得到 1488;= UNICODE(“פ”) 會得到 1508。

另外,你知道 = LEN(“שָׁלוֹם”) 會得到多少的數值?是 4 ?或是其他 ?
答案是 7,因為 שָׁלוֹם 這個單字裡有用到 4個字母,3個母音符號,所以是 7。

綜合上述的技巧,就可以發展出一個希伯來文的處理功能:
將含有母音符號的單字,加以轉換成“純”子音表示的樣式。
你要不要動手試試 ?

認識 希伯來文 Unicode 的字碼與應用(三)

讓我們繼續延伸【認識 希伯來文 Unicode 的字碼與應用(一)】、【認識 希伯來文 Unicode 的字碼與應用(二)】的內容。

今天,就直接藉由 打字練習 來說明。

讓我們來學習要如何輸入 Shalom 平安 這個希伯來文單字:שָׁלוֹם

首先,就 שָׁלוֹם 這個字的外觀來看,它是由下列文字符號所組成:
image
然而,這些文字符號所對應的字碼數值,分別是:
image

馬上跟你手中的字碼表核對一下!

接下來,在 Excel 環境裡,輸入公式來體現 שָׁלוֹם。

image

image

應用相同的方式,你就可以很容易地做出 希伯來文 的文書作業了。

最後,請務必參考【希伯來文初學者的輸入法 @PC】、【希伯來文鍵盤配置圖 @ Win 10】等資料;
好讓你對文字的輸入原理能夠完全融會貫通!

補充:文章中提到的每個 文字符號所對應的字碼數值 ,在 【希伯來文 Google Input Tools】輸入法裡,就是對應到該輸入法對應表的每個圖示。如此使用者就不用去記住每個字符的字碼了。

image  image

認識 希伯來文 Unicode 的字碼與應用(二)

延續【認識 希伯來文 Unicode 的字碼與應用(一)】文章,繼續來認識 希伯來文 & Unicode 的關係。

今天還要借用大家熟悉地 Excel 環境,來做進一步的說明。
首先,若是你還沒下載 希伯來文 Unicode 的三張字碼表,記得先行下載並列印出來,放在身旁好隨時查看。

『希伯來文與 Unicode 』的字碼表可分成三種:

  1. 子音字碼表 [下載]
  2. 母音字碼表 [下載]
  3. 其他標點符號的字碼表 [下載]

Unicode_Consonants_thumb[2]

Unicode_Vowel Points_thumb[5] 

Unicode_Other Points_thumb[2]



我們還是以 Aleph 字母為例子來解說:
Aleph א 它的 Unicode 值 = 1488,這是十進位數值;若是十六進位,就是 5D0。

接下來,請開啟 Excel ,並在儲存格中打入公式 =UNICHAR(1488),看看會有什麼效果!
既然神奇的出現 א 字母。

在 Excel 裡,

  • 十進位 要轉變成 十六進位,可使用公式 =DEC2HEX(十進位數值)
  • 十六進位 要轉變成 十進位,可使用公式 =HEX2DEC(十六進位數值)

所以,假若你要呈現出 א 字母的效果,也可以使用 =UNICHAR( HEX2DEC(“5D0”) ),公式來得到。
補註:公式 =UNICHAR() 需要代入 十進位 的數值。

接下來,做個小測驗!
請試試看,可不可以打出 שׁ ?
Ans.       =UNICHAR(1513) & UNICHAR(1473)

請試試看,可不可以打出 שָׁ ?
Ans.       =UNICHAR(1513) & UNICHAR(1473) & UNICHAR(1464)

在這篇文章中,藉由你個人比較熟悉的試算表 Excel 環境,不只學到三個公式:UNICHAR()、DEC2HEX()、HEX2DEC()
也了解到,一個帶有母音符號的希伯來文字母,是如何產生的過程。

當然,這樣的學習並不是要你去記住那個希伯來文字母的 Unicode 編號值;
而是,經由這樣的練習,來知道希伯來文字母是如何產生了。
事實上,若是要以上面介紹的方式來產生希伯來文,似乎也太麻煩、不實際的些。你是不是也有相同的看法呢?

認識 希伯來文 Unicode 的字碼與應用(一)

或許,你可以靈活使用希伯來文來表達、溝通;也許,你是個希伯來文的初學者。
無論你是哪個層級,可能你還沒聽過希伯來文與 Unicode 關係。

今天,就來談談這個話題!
若是你不清楚什麼是 Unicode ,請自行上網找下谷哥大俠,了解一下。

談到『希伯來文與 Unicode 』的關係,實際上就是在講希伯來文的字碼表。
這字碼表約略分成三種:

  1. 子音字碼表 [下載]
  2. 母音字碼表 [下載]
  3. 其他標點符號的字碼表 [下載]

從這些字碼表的內容來看,你可能就會明白;

  • 每一個子音字母,就配置有一個 Unicode 的編號。
    例如:Aleph א 它的 Unicode 值 = 1488,這是十進位數值;若是十六進位,就是 5D0。
  • 同理,母音標點符號也配置一個 Unicode 的編號。
  • 子音表中,有五個標示藍色的字母,就是字尾字母;它們的編碼數值,會比非子尾字母本身的編碼『小』數字 1。


Unicode_Consonants

Unicode_Vowel Points 

Unicode_Other Points


跨進 TeX、LaTeX 中文排版領域裡!(二)

接續【跨進 TeX、LaTeX 中文排版領域裡!(一)】的文章介紹,
這篇文章要來說明一些:簡體、繁體檔案存檔格式的現象及問題。http://pertonchang.blogspot.tw/2018/04/texlatex.html

因為要跨入 TeX、LaTeX 中文排版領域,所以選用清華大學出版的【LaTeX 2ε 完全學習手冊 by 胡偉】來當教材;
該書的範例眾多,介紹項目之細緻;即便是 TeX、LaTeX 排版領域裡的高手,也合適拿該書來當鎮店之寶使用。

不過,作者的寫作環境是簡體,與繁體有所不同;所以可以看到該書中提供的範例,就有三種存檔格式:

  1. GB2312 (Simplifiled)
  2. ANSI
  3. UTF-8 w/o BOM

這些存檔格式,若是配合 中文 使用,就會產生一些現象:

  1. GB2312 (Simplifiled):中文可呈現,但有簡體字。
  2. ANSI:中文字變成亂碼
  3. UTF-8 w/o BOM:繁體中文可正常呈現。

所以,需要將現有的範例檔案,加以“轉碼”為 UTF-8 w/o BOM

image

image

image

將範例檔案“轉碼”為 UTF-8 w/o BOM 的方法如下:(參考一下就好)
補充:編輯軟體是 Notepad++

image
image

談電子資料交換(EDI)基礎技術的對照:文字檔的讀取

現今電腦使用極為平凡,網路上的資料又是多如洋海,景然像是個大數據(Big Data)時代。
若要資料互通,彼此連結,就常常會應用電子資料交換的技術;好讓工作順暢,也可以節省人力、時間。

一般來說,電子資料交換最常使用文字檔格式(也稱作文本檔) *.txt。這類型的檔案,只要滑鼠點擊兩下,就可以被 NotePad 給開啟。(Windows 的默認設定)
但很多人可能不會注意到,這個被開啟的檔案是被儲存成什麼編碼格式?例如:ANSI、Unicode、Unicode big endian、UTF-8。

你可以使用各式文書編輯軟體,來看看他們是什麼編碼格式。
例如:用 NotePad++ 可以看到 image,喔,原來儲存為 UTF-8 格式。

你若是用 NotePad,就會看到 image,你也可以更改成其他編碼格式來存檔。
image

 

電子資料交換的應用,一般是以程式方式來處理。方法有 Input/Output、File System Object、ADODB.Stream。

The File System Object, generally used by VBScript devlopers to read and write text files, can read only ASCII or Unicode text files. You cannot use it to read or write UTF-8 encoded text files.

But, if you can use Microsoft ActiveX Data Objects (ADO), you can read UTF-8 encoded text files

File System Object 常被使用在 VBScript 的開發上,可用以讀/寫 ASCII或Unicode 格式的文本檔。但 File System Object 不能用存取 UTF-8 編碼的檔案。

所以,你能使用 Microsoft ActiveX Data Objects (ADO) 才能讀取 UTF-8 編碼的檔案。

 

以下是兩種類型的程式對比條列,方便有需求者參考。


    Dim strFile As String
Dim InputStr As String
Dim Fn As Integer

strFile = "D:\GitHub\Misc\對帳單.txt"

Fn = FreeFile
Open strFile For Input As #Fn





While Not EOF(Fn)
Line Input #Fn, InputStr

' do something ....
Wend

Close #Fn
    Dim strFile As String
Dim InputStr As String
Dim oStreamIn

strFile = "D:\GitHub\Misc\對帳單.txt"

Set oStreamIn = CreateObject("ADODB.Stream")
oStreamIn.Type = 2 ' adTypeText
oStreamIn.Open
oStreamIn.Charset = "utf-8"
oStreamIn.LoadFromFile strFile
oStreamIn.LineSeparator = 10 ' # Linefeed

Do Until oStreamIn.EOS
InputStr = oStreamIn.ReadText(-2) ' adReadLine

' do something ....
Loop

oStreamIn.Close

從 開始>執行,你可以使用那些控制台指令? (Start > Run)

使用Windows的人,一定知道什麼是 開始。但是知道 執行 的人,可能就相較少了許多。

首先,要知道的基本知識:可以執行的指令,一定是【可執行檔】,而且這些【可執行檔】一定貯存在 系統環境變數 PATH 的路徑中。

【可執行檔】:是指附檔名為 *.bat, *.com, *.exe 的檔案,這類型的檔案是可執行的。

系統環境變數 PATH:凡是在 PATH 變數中,增設的路徑,都可以成為找尋可執行檔是否存在的依據。


接下來,就是可以使用那些控制台指令?他們各有什麼功用?什麼 控制台 (.cpl) 檔案?

檔名 用途
Access.cpl 協助工具內容
Appwiz.cpl 新增/移除程式內容
bthprops.cpl Bluetooth裝置
collab.cpl 近端分享
Desk.cpl 顯示內容
FindFast.cpl FindFast (隨附於 Microsoft Office for Windows 95)
Firewall.cpl Windows 防火牆
hdwwiz.cpl 裝置管理員
igfxcpl.cpl Intel圖形和媒體控制台
Inetcpl.cpl 網際網路內容
infocardcpl.cpl  
Intl.cpl 地區設定內容
irprops.cpl Infrared properties control panel file
Joy.cpl 搖桿內容
Main.cpl 滑鼠、字型、鍵盤和印表機內容
Mlcfg32.cpl Microsoft Exchange 或 Windows Messaging 內容
Mmsys.cpl 多媒體內容
Modem.cpl 數據機內容
ncpa.cpl 網路連線
Netcpl.cpl 網路內容
Odbccp32.cpl 資料來源 (32 位元 ODBC,隨附於 Microsoft Office)
Password.cpl 密碼內容
powercfg.cpl 電源選項
RTSnMg64.cpl 瑞昱高傳真音效
Sticpl.cpl 掃描器與數位相機內容
Sysdm.cpl 系統內容與新增硬體精靈
TabletPC.cpl 手寫筆與觸控
telephon.cpl 電話、數據機的位置資訊
Themes.cpl 桌面主題
TimeDate.cpl 日期/時間內容
Wgpocpl.cpl Microsoft Mail 郵局
wscui.cpl 行動作業中心