【问题标题】:Opening a PDF File by script, printing it, and closing it [closed]通过脚本打开 PDF 文件,打印并关闭它 [关闭]
【发布时间】:2019-08-06 15:19:44
【问题描述】:

我的一个朋友收到了一些感染了恶意软件的 PDF 文件。他发现如果他在 Ubuntu 上打开它们并将它们打印回一个文件,它就会删除恶意软件。

有人知道是否有一种方法可以编写打开、打印和关闭 PDF 文件目录的脚本吗?

【问题讨论】:

  • 它正在一个与网络隔离的 Ubuntu 虚拟机中打开。没有其他方法可以删除恶意软件。
  • 只要是隔离的。如果随便这样做,可能会产生后果。
  • PDF 文件只是文本。您是否尝试过在该级别编辑文件以识别问题?这是否是以前无害的 PDF 被某种恶意软件破坏的?
  • 是 - PDF 中的大多数字符无法识别,因此无法将恶意软件与 PDF 中的字符区分开来。这是 Ransom Ware,因此在 Windows 上 PDF 甚至无法打开,但 Ubuntu 可以打开它们,因此通过将它们通过打印到文件过程,他能够删除恶意软件/勒索软件字符,以便文件在 Windows 上打开。跨度>

标签: javascript node.js pdf


【解决方案1】:

有多种方法可以做到这一点。我建议你看看Puppeteer

示例脚本可能如下所示:

const puppeteer = require('puppeteer');
const browser = await puppeteer.launch();
let page = await browser.newPage();
await page.goto(link_to_pdf_file, { waitUntil: 'networkidle2' });
try {
    await page.pdf({
        path: path_to_save_result_pdf,
        format: 'letter',
        Landscape: true,
        scale: 1,
        printBackground: true,
        margin: {
            top: '95px',
            bottom: '95px',
            left: '95px',
            right: '95px'
        }
    })

    consoleLog('Page saved: ' + p.url);
} catch (e) {
    consoleLog(`Save pdf error: ${e}`)
}
await browser.close();

很遗憾,我目前没有机会检查这是否有效。它可能需要一些小的改动,不过这取自我的工作项目。

【讨论】:

  • 虽然是出于好意,但这段代码确实毫无意义,因为它不能解决问题,只能解决问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-11-01
  • 1970-01-01
  • 2016-09-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-03-08
相关资源
最近更新 更多