[流程設計參考] L04 作業 - 文章分析pdf 解析

需求說明

解析指定的 PDF 檔案(作業 - 文章分析.pdf) 中以下資訊 :

所有內文不包括頁首頁尾,並在每頁的文字間需要插入換行符號 \n

需要檔案

  1. 作業 - 文章分析.pdf

請先至少練習 15分鐘再看解答

解答

2.2 程式碼撰寫

2.2.1 總頁數

因需要解析多張發票於同一份 PDF 文件中,所以利用以下程式碼先找出此文件共有幾頁 :

//總頁數
let pagesNumber = input.totalPages;

//根據總頁數 for loop
for (let i = 1; i <= pagesNumber; i++) {
  //解析每一頁的程式碼放在此 loop 中
}

接著再利用此變數做 for loop 來一頁一頁解析

2.2.2 解析資訊

直接使用 valBounds 得到整頁的文字
要使用 option
ignoreHeader 來忽略頁首
ignoreFooter 來忽略頁尾

//有幾頁
let pagesNumber = input.totalPages;

//最後需要的文字串
let all_text = "";

for (let i = 1; i <= pagesNumber; i++) {
  //忽略頁首頁尾
  let option = { ignoreHeader: 0.1, ignoreFooter: 0.9, all: true };
  let target = { valBounds: { page: i } };
  let texts = input.resolveRange(target, option);
  texts.forEach((text) => (all_text += text["text"]));
  //插入換行符號
  all_text += "\n";
}

console.log(all_text);
api.write("文章全文.txt", all_text);

輸出結果 :