为什么PDF_begin_page_ext:不能在'object'范围内调用函数

时间:2017-07-17 15:41:12

标签: node.js pdflib

代码读取pdf文件并从源pdf返回新文件副本 用nodejs编译时出错了 https://github.com/NitroPye/node-pdflib

将nodejs用于pdflib

const lib = require('../../pdf');
const pdflib = lib.pdflib;
const PDFLIB = lib.DEFINES;

const pdf = pdflib.PDF_new();

pdflib.PDF_set_option(pdf, "errorpolicy=exception");
pdflib.PDF_set_option(pdf, "hypertextencoding=host");
pdflib.PDF_set_info(pdf, "Creator", "quickreference_ios");
pdflib.PDF_set_info(pdf, "Author", "Thomas Merz");
pdflib.PDF_set_info(pdf, "Title", "mini imposition demo (Objective-C)");

const manual = pdflib.PDF_open_pdi_document(pdf,"ArtworkBlankApp.pdf",0,"")
let row = 0
let col = 0

const endpage = parseInt(pdflib.PDF_pcos_get_number(pdf,manual, "length:pages"));
const font = pdflib.PDF_load_font(pdf, "Helvetica-Bold", 0, "host", "");
for(let pageno = 1; pageno <= endpage; pageno++){
  pdflib.PDF_begin_page_ext(pdf, PDFLIB.a4_width, PDFLIB.a4_height, "topdown")
  const page = pdflib.PDF_open_pdi_page(pdf, manual, pageno, "");
  pdflib.PDF_fit_pdi_page(pdf, page, 0 , PDFLIB.a4_height, "")
  pdflib.PDF_close_pdi_page(pdf, page)
  pdflin.PDF_end_page_ext("")
}
pdflib.PDF_end_document(pdf,"")
pdflib.PDF_close_pdi_document(manual)

我该如何解决?

1 个答案:

答案 0 :(得分:1)

您需要先调用PDFlib函数PDF_begin_document(),然后才能在输出文档中创建任何内容。因此,在for循环之前放置以下语句将起到作用:

pdflib.PDF_begin_document(pdf, "out.pdf", 0, "")

这将导致您的程序生成名为“out.pdf”的PDF文件。