【问题标题】:Parameters for opening pdf files not working in electron打开 pdf 文件的参数在电子中不起作用
【发布时间】:2018-05-15 12:06:47
【问题描述】:

我正在尝试通过使用参数来控制如何打开 pdf 在 iframe 中打开 pdf 文件。它们在网站上运行良好,但似乎不适用于电子:pdf 在 iframe 内打开,但是,“view=fitH”指定的缩放级别似乎不适用于电子。有什么方法可以使参数在电子中也起作用?这是我正在使用的代码。

<iframe src='./res/test.pdf#page=1&toolbar=0&statusbar=0&messages=0&navpanes=0&scrollbar=0&view=fitH' frameborder="0" style="width:72.5%;height:95%;position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%);"></iframe>

更新:

我将尝试提供更多关于我正在尝试做的事情的细节。我正在从 macOS Sierra 构建应用程序,最终目标是为 Windows 提供本地应用程序,当没有互联网连接时,可以使用它来代替在线应用程序。我正在使用以下命令来构建应用程序:

electron-packager ./ --platform=all --arch=all --overwrite --asar

但是,pdf 不适合 iframe 的宽度,而是像下图一样缩小:

The actual result - you can see that the pdf is zoomed out a lot

我将尝试从 windows 构建应用程序,看看是否能解决问题。

【问题讨论】:

  • “'view=fitH' 似乎不起作用”是什么意思?据我所知,它与 Chrome 和 Edge 的工作方式相同。可能会显示有关您所需布局的图像。
  • 是的,它们在所有浏览器中都能正常工作,我对此没有任何问题。但是,在由 electron 生成的 windows 应用程序中,PDF 在 iframe 中打开时会随机缩放,并且不会像在浏览器中那样自动水平适应 iframe。很遗憾,我无法分享任何图片,但如果有不清楚的地方请告诉我,我会尽力解释得更好。
  • 我已经用下面的代码进行了测试,发现与浏览器没有区别。这就是我问的原因。你如何加载它?这可能会有所作为

标签: electron


【解决方案1】:

我认为这与在浏览器中的工作方式相同

main.js

const {app, BrowserWindow} = require('electron')

app.once('ready', () => {
  let win = new BrowserWindow({
    webPreferences: {
      plugins: true
    }
  })
  win.loadURL(`${__dirname}/pdfargs.html`)
})

pdfargs.html

<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8" />
  <title>Page Title</title>
</head>
<body>
  <iframe src='./res/test.pdf#page=1&toolbar=0&statusbar=0&messages=0&navpanes=0&scrollbar=0&view=fitH' frameborder="0" style="width:72.5%;height:95%;position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%);"></iframe>
</body>
</html>

【讨论】:

  • 感谢您的回复,pergy,对于延迟回复,我深表歉意。我有一个不同的 main.js,所以我尝试用你的构建,但不幸的是我得到了相同的结果:pdf 在 iframe 中打开,但它被缩小了。我将更新问题,以便提供有关我正在做的事情的更多详细信息。
【解决方案2】:

我发现了问题所在。我违反了规则:

Individual parameters, together with their values (separated by & or #), can be no greater then 32 characters in length.

我现在正在使用page=1&amp;toolbar=0&amp;view=fitH,它现在可以正常工作。

即使我使用了超过 32 个字符,我也不知道为什么它在浏览器中有效,但我想每个规则都有一个例外。

【讨论】:

    猜你喜欢
    • 2018-02-03
    • 2011-07-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多