簡體   English   中英

使用 node.js 和 express 打開本地 pdf 文件

[英]Opening a local pdf file using node.js and express

我正在嘗試使用 electron 和 electron-pdf-window 創建一個 pdf 查看器應用程序,當我想從 URL 文件路徑打開時,下面的代碼有效,但是當我嘗試使用file:///從我的本地文件打開 pdf 時file:///應用程序下載 pdf 而不是在我的 window 上查看它。

const { app } = require('electron')
const PDFWindow = require('electron-pdf-window')

app.on('ready', () => {
  const win = new PDFWindow({
    width: 800,
    height: 600
  })

  win.loadURL('file://///C://username/desktop/myfile.pdf')
})

我也嘗試了下面的代碼,但下面的錯誤顯示。

類型錯誤:無法匹配“未定義”或“空”。

const { BrowserWindow } = require('electron').remote
const PDFWindow = require('electron-pdf-window')

const win = new BrowserWindow({ width: 800, height: 600 })

PDFWindow.addSupport(win)

win.loadURL('file://///C://username/desktop/myfile.pdf')

還有其他方法可以從我的 PC 目錄打開本地 pdf 文件嗎?

基於此自述文件, https://github.com/electron/electron/blob/master/docs/api/browser-window.md

你可以做類似的事情

win.loadURL(`file://${__dirname}/app/index.html`)

但您必須將其放入app.on('ready', function() {}以避免Cannot create BrowserWindow before app is ready錯誤。

出現該錯誤的原因,因為該應用程序尚未准備好並且仍在加載

您需要修改 electron-pdf-window package。

打開 electron-pdf-window/index.js

Go 注釋行 23 const->let fileUrl = url.replace(/^file:///i, '');

首先通過 let 更改 const,然后在這段代碼之后添加

fileUrl = fileUrl.replace('/', '');

可以正常使用;

const w= new BrowserWindow({ width: 1200, height: 920, webPreferences: { nodeIntegration: true, contextIsolation: true } }); PDFWindow.addSupport(w)

w.loadURL(url.format ({ pathname: path.join(__dirname, '../pdf/123.pdf'), protocol: 'file:', slashes: true }));

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM