问题描述
在拥有 renamed 文件本身后,如何获得 PDF
文件的标题?
PSPath : Microsoft.PowerShell.Core\FileSystem::/home/nicholas/to/99.pdf
PSParentPath : Microsoft.PowerShell.Core\FileSystem::/home/nicholas/to
PSChildName : 99.pdf
PSDrive : /
PSProvider : Microsoft.PowerShell.Core\FileSystem
PSIsContainer : False
Mode : -----
ModeWithoutHardLink : -----
VersionInfo : File: /home/nicholas/to/99.pdf
InternalName:
OriginalFilename:
FiLeversion:
FileDescription:
Product:
ProductVersion:
Debug: False
Patched: False
PreRelease: False
PrivateBuild: False
SpecialBuild: False
Language:
BaseName : 99
Target :
LinkType :
Length : 592483
DirectoryName : /home/nicholas/to
Directory : /home/nicholas/to
IsReadOnly : False
FullName : /home/nicholas/to/99.pdf
Extension : .pdf
Name : 99.pdf
Exists : True
CreationTime : 2/19/2021 11:45:18 PM
CreationTimeUtc : 2/20/2021 7:45:18 AM
LastAccesstime : 2/20/2021 2:02:36 AM
LastAccesstimeUtc : 2/20/2021 10:02:36 AM
LastWriteTime : 2/19/2021 11:45:18 PM
LastWriteTimeUtc : 2/20/2021 7:45:18 AM
Attributes : normal
PS /home/nicholas/to>
PS /home/nicholas/to> Get-ChildItem -Path ./ –File | Select-Object -Property *
这是将 PDF
文件批量导入到 calibre
中,值得注意的是,它似乎可以识别重复项,甚至显示一些标题。它是解析 PDF
文件本身,还是从 meta-data 中收集?
解决方法
为此,您可以使用 pdfinfo.exe
,您可以在免费的 Xpdf command line tools 中找到它。
下载并解压 zip 文件后,将 pdfinfo.exe
复制到某个目录并确保通过 right-click 或使用 PowerShell 解除阻止
Unblock-File -Path 'Where\Ever\You\Have\Copied\It\To\pdfinfo.exe'
使用它,要获取存储在 pdf 中的原始标题,您可以
$title = ((& 'D:\Test\pdfinfo.exe' 'D:\Test\test.pdf' |
Where-Object { $_ -match '^Title:' }) -split ':',2)[-1].Trim()