首页 > 解决方案 > 如何在 Chrome 中使用 vbscript 打开 Pdf 并通过在 url 中添加 # 进行搜索

问题描述

再会,

我正在尝试使用 vbscript 打开一个 pdf url。pdf在本地电脑上。我正在使用 vbscript 打开 url 并使用 chrome。在我的网址中,我使用 #Search=Register 这将使 pdf 打开并搜索第一次出现的 Register。

我的问题是,我的 Url 似乎得到了 % 编码,即使我的 # 被编码为 %23,然后 chrome pdf 预览也不起作用。

我的 vbscript 代码:

Dim strChrome
Dim WShellChrome
Dim strUrl

Set WShellChrome = CreateObject("WScript.Shell")
strChrome = "C:\Program Files (x86)\Google\Chrome\Application\chrome.exe"
strUrl = "\\myserver/HelpDocumentation/Configuration - Company Configuration.pdf#Search=Register"

WShellChrome.Run chr(34) + strChrome + chr(34) & " " & chr(34) + strUrl + chr(34), 1, false

当我运行此代码时,它会使用以下 url 打开 Chrome:

file://myserver/HelpDocumentation/Configuration%20-%20Company%20Configuration.pdf%23Search=Register

注意已经发生的 % url 编码。%20 是空格,%23 是#

然后浏览器找不到 pdf Url,因为#被编码为%23。如果我将浏览器 url 中的%23更改为#它可以工作并显示 pdf。

似乎 %20(空格)在 url 中是可以的,但它不喜欢 %23(#)。

我需要 url 中的 # 来打开 pdf 并搜索特定的字符串。

如果我复制 url,它似乎也不是 vbscript:

\\myserver/HelpDocumentation/Configuration - Company Configuration.pdf#Search=Register

并将其粘贴到我的 chrome url 中,它会自动将空格转换为 %20,将 # 转换为 %23,但由于 %23 它认为是文件名的一部分,因此 acrobat 预览不起作用。

希望我有道理,如果你不明白,请询问。

标签: google-chromepdfvbscriptacrobat

解决方案


回复后,我尝试了以下方法。

尝试使用strUrl = escape(strUrl),但这导致 strUrl 甚至 / 和 \ 斜杠都被完全编码。

然后我开始检查不同的网址,建议将我的 / 更改为 \ 斜杠以及编码空格。这是我的结果。

当我使用没有编码空格的 url 时

"\\myserver\HelpDocumentation\Configuration - Company Configuration.pdf#Search=Register_"

在 chrome 中,它根本不编码,并且在 url 中的每个空格处都会打开一个新选项卡。- 不工作。

当我使用

"\\myserver\HelpDocumentation\Configuration%20-%20Company%20Configuration.pdf#Search=Register_"

在 chrome 中它更改为:file://myserver/HelpDocumentation/Configuration%2520-%2520Company%2520Configuration.pdf%23Search=Register_
然后由于双重编码而无法工作。所以它添加了一个“文件:”并再次对 url 进行编码,空格和 # 被编码。

当我使用

file:\\myserver\HelpDocumentation\Configuration%20-%20Company%20Configuration.pdf#Search=Register_

在 chrome 中它保持不变,结果它正在工作。因此,在开头附加的“文件:”并仅对 url 中的空格进行编码会有所不同。

我最终得到了以下代码。请注意,strUrl 是我刚刚硬编码的输入变量。我现在还检查它是否是 pdf,然后添加“file:”,因为 url 可以是文件或报告 url。此代码有效。

Dim strChrome
Dim WShellChrome
Dim strUrl

Set WShellChrome = CreateObject("WScript.Shell")
strChrome = """C:\Program Files (x86)\Google\Chrome\Application\chrome.exe"""
strUrl = "\\myserver\HelpDocumentation\Configuration - Company Configuration.pdf#Search=Register_"

strUrl = Replace(strUrl, " ", "%20")

if(InStr(strUrl,".pdf")) Then
   strUrl = "file:" + strUrl
End If

WShellChrome.Run strChrome & " " & ""+strUrl+"" , 1, false

推荐阅读