标题: [文本处理] 【已解决】求图片转PDF的批处理 [打印本页]
作者: daijt 时间: 2023-10-5 10:29 标题: 【已解决】求图片转PDF的批处理
本帖最后由 daijt 于 2023-10-7 19:05 编辑
要求把当前文件夹的所有图片(包括JPG和PNG格式)转换成1个PDF文件,并以当前文件夹的名字命名。
作者: pd1 时间: 2023-10-5 11:04
本帖最后由 pd1 于 2023-10-5 11:06 编辑
http://www.bathome.net/thread-66651-1-1.html
就前几天的帖子
看错了,那个是合并pdf
作者: pd1 时间: 2023-10-5 11:04
http://www.bathome.net/thread-66651-1-1.html
就前几天的帖子
作者: Five66 时间: 2023-10-5 11:56
参考
http://www.bathome.net/viewthread.php?tid=66410
http://www.bathome.net/viewthread.php?tid=60630
作者: Batcher 时间: 2023-10-5 13:53
回复 1# daijt
请参考Q-04把bat文件保存为UTF-8编码:
https://mp.weixin.qq.com/s/Koje4FufWxWBs7ioDy_LJA- @echo off
- chcp 65001 >nul
- cd /d "%~dp0"
- REM 根据自己电脑实际情况设置ImageMagick的路径
- set "path=C:\Program Files\ImageMagick;%path%"
- for %%i in ("%~f0\..") do (
- magick.exe "*.jpg" "*.png" "%%~nxi.pdf"
- )
复制代码
作者: terse 时间: 2023-10-5 19:05
什么系统 试试powershell
作者: daijt 时间: 2023-10-6 17:21
回复 5# Batcher
您好,我路径 E:\ImageMagick
@echo off
chcp 65001 >nul
cd /d "%~dp0"
set "path=E:\ImageMagick;%path%"
for %%i in ("%~f0\..") do (
magick.exe "*.jpg" "*.png" "%%~nxi.pdf"
)
已经改了,也保存ANSI格式的BAT,但是点了就窗口闪了下,没完成
作者: 77七 时间: 2023-10-6 20:43
回复 7# daijt
按照5楼第一行保存。
作者: Batcher 时间: 2023-10-6 21:41
回复 7# daijt
5楼说的不是ANSI编码,而是UTF-8编码。
作者: daijt 时间: 2023-10-7 08:13
本帖最后由 daijt 于 2023-10-7 08:17 编辑
回复 9# Batcher
改UTF-8编码,也没用 这个是保存在当前文件夹吗
作者: Batcher 时间: 2023-10-7 08:42
回复 10# daijt
是。请把1个jpg、1个png、1个bat打包压缩上传到网盘我试试。
作者: daijt 时间: 2023-10-7 08:46
回复 11# Batcher
链接:https://pan.baidu.com/s/16buE2P3uMwwa9sWaPh0woA
提取码:uav7
作者: Batcher 时间: 2023-10-7 08:55
回复 12# daijt
双击文件 C:\Windows\System32\cmd.exe
在打开的CMD窗口中依次执行以下命令:
cd /d "E:\ImageMagick"
dir /b *.exe
截图发出来
把你的“图片合并PDF.txt”重命名为test.bat
假设图片和bat文件都在 C:\Users\Administrator\Desktop\PDF 文件夹下
双击文件 C:\Windows\System32\cmd.exe
在打开的CMD窗口中依次执行以下命令:
cd /d "C:\Users\Administrator\Desktop\PDF"
test.bat
截图发出来
如果需要上传截图,可以找个图床,例如:
http://bbs.bathome.net/thread-60985-1-1.html
作者: daijt 时间: 2023-10-7 09:41
本帖最后由 daijt 于 2023-10-7 09:46 编辑
回复 13# Batcher
C:\Windows\System32>cd /d "E:\ImageMagick"
E:\ImageMagick>dir /b *.exe
dcraw.exe
hp2xx.exe
imdisplay.exe
magick.exe
unins000.exe
E:\ImageMagick>E:\桌面\PDF"test.bat
'E:\桌面\PDF"test.bat' 不是内部或外部命令,也不是可运行的程序
或批处理文件。
E:\ImageMagick>cd /d "C:\Users\Administrator\Desktop\PDF"
系统找不到指定的路径。
E:\ImageMagick>test.batcd /d "E:\桌面\PDF"
'test.batcd' 不是内部或外部命令,也不是可运行的程序
或批处理文件。
E:\ImageMagick>test.bat
作者: Batcher 时间: 2023-10-7 10:04
回复 14# daijt
我自己的电脑里面,图片在 C:\Users\Administrator\Desktop\PDF 文件夹下。
你的电脑里面,图片在哪个路径下?
作者: daijt 时间: 2023-10-7 10:11
回复 15# Batcher
E:\桌面\PDF 图片在这PDF文件夹里面
作者: Batcher 时间: 2023-10-7 10:23
回复 14# daijt
把你在网盘里面上传的那个“图片合并PDF.txt”重命名为test.bat
找到文件 C:\Windows\System32\cmd.exe
在打开的CMD窗口中输入命令:
cd /d "E:\桌面\PDF"
回车
输入命令:
test.bat
回车
截图发出来看看
作者: daijt 时间: 2023-10-7 10:38
本帖最后由 daijt 于 2023-10-7 10:39 编辑
回复 17# Batcher
作者: Batcher 时间: 2023-10-7 11:00
回复 18# daijt
你下载这个版本试试:ImageMagick-7.1.1-19-portable-Q16-HDRI-x64.zip
https://imagemagick.org/script/download.php#windows
作者: daijt 时间: 2023-10-7 12:03
回复 19# Batcher
已经卸载了以前的并安装了您发来的,结果现在是这样的情况
作者: Batcher 时间: 2023-10-7 12:13
回复 20# daijt
正常就应该是这样的。文件夹下没有生成pdf文件吗?
你的ImageMagick解压缩之后放在哪个目录下了?
作者: terse 时间: 2023-10-7 12:31
本帖最后由 terse 于 2023-10-7 12:53 编辑
如今含中文故保存文件编码为ANSI试
另外 这个要看你什么系统 还有就是要Microsoft Office支持- <# :
- @echo off
- powershell -noprofile -NoLogo "iex(${%~f0}|out-string)"
- pause
- exit
- #>
- $folderPath = 'E:\桌面\PDF'
- $folderName = Split-Path $folderPath -Leaf
- $word = New-Object -ComObject Word.Application
- $doc = $word.Documents.Add()
- Get-ChildItem -Path $folderPath\* -File -Include *.jpg,*.png | % {
- [void]$doc.InlineShapes.AddPicture($_.FullName)
- }
-
- $doc.SaveAs([Ref] "$folderPath\$folderName.pdf", [Ref] 17)
- $doc.Close([Ref] $false)
- $word.Quit()
- [Runtime.Interopservices.Marshal]::ReleaseComObject($word) | Out-Null
复制代码
作者: daijt 时间: 2023-10-7 13:32
回复 22# terse
你的这个可以转PDF 就是 他把2张JPG的转一个上面,还有没有全屏,画面缩小了
作者: daijt 时间: 2023-10-7 16:00
本帖最后由 daijt 于 2023-10-7 16:06 编辑
回复 21# Batcher
还是放在 E:\ImageMagick 没找到生成的PDF文件 我尝试打开 ImageMagick 里面的2个应该程序 hp2xx 和 imdisplay 一个是上面的样子, imdisplay 打开后一拉进照片就退出了
作者: Batcher 时间: 2023-10-7 16:10
回复 24# daijt
test-2.bat
保存为UTF-8编码
执行截图发出来看看- @echo on
- chcp 65001 >nul
- cd /d "%~dp0"
- set "path=E:\ImageMagick;%path%"
- dir /b /a-d "E:\ImageMagick\*.exe"
- dir /b /a-d "*.jpg" "*.png"
- for %%i in ("%~f0\..") do (
- echo magick.exe "*.jpg" "*.png" "%%~nxi.pdf"
- magick.exe "*.jpg" "*.png" "%%~nxi.pdf"
- )
复制代码
作者: daijt 时间: 2023-10-7 16:58
回复 25# Batcher
作者: Batcher 时间: 2023-10-7 17:06
回复 26# daijt
你下载的不对
正常的 ImageMagick-7.1.1-19-portable-Q16-HDRI-x64.zip 解压缩之后应该有这些exe文件:
compare.exe
composite.exe
conjure.exe
convert.exe
dcraw.exe
ffmpeg.exe
identify.exe
IMDisplay.exe
magick.exe
mogrify.exe
montage.exe
stream.exe
作者: daijt 时间: 2023-10-7 17:18
回复 19# Batcher
我是你给的这个 你下载这个版本试试:ImageMagick-7.1.1-19-portable-Q16-HDRI-x64.zip
https://imagemagick.org/script/download.php#windows
网站下载的是不是安装少点了什么
作者: Batcher 时间: 2023-10-7 17:27
回复 28# daijt
https://imagemagick.org/archive/binaries/ImageMagick-7.1.1-19-portable-Q16-HDRI-x64.zip
你确定用的是这个下载链接吗?
这个不需要安装,它是一个zip压缩包,下载之后直接解压缩就行了。
作者: daijt 时间: 2023-10-7 18:26
回复 29# Batcher
这回下载对了但是还是不能用
作者: Batcher 时间: 2023-10-7 18:36
回复 30# daijt
请按照25楼的步骤再来一次截图。确保你的文件夹下有jpg和png两种图片。
作者: daijt 时间: 2023-10-7 18:52
本帖最后由 daijt 于 2023-10-7 19:00 编辑
回复 31# Batcher
E:\桌面\PDF>set "path=E:\ImageMagick;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Windows\System32\OpenSSH\;C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common;C:\Users\bei\AppData\Local\Microsoft\WindowsApps;"
E:\桌面\PDF>dir /b /a-d "E:\ImageMagick\*.exe"
compare.exe
composite.exe
conjure.exe
convert.exe
dcraw.exe
ffmpeg.exe
identify.exe
IMDisplay.exe
magick.exe
mogrify.exe
montage.exe
stream.exe
E:\桌面\PDF>dir /b /a-d "*.jpg" "*.png"
t0138d6677f0fa4a085.jpg
t01fffbfccbc800417d.jpg
t019a5968af75c7f6f6.png
E:\桌面\PDF>for %i in ("E:\桌面\PDF\test-2.bat\..") do (
echo magick.exe "*.jpg" "*.png" "%~nxi.pdf"
magick.exe "*.jpg" "*.png" "%~nxi.pdf"
)
E:\桌面\PDF>(
echo magick.exe "*.jpg" "*.png" "PDF.pdf"
magick.exe "*.jpg" "*.png" "PDF.pdf"
)
magick.exe "*.jpg" "*.png" "PDF.pdf"
E:\桌面\PDF>
可以用了 谢谢
作者: daijt 时间: 2023-10-9 10:19
回复 25# Batcher
大神,按照25楼的能用,但是出现了新的情况,就是文件夹里面如果没有PNG的图片,只有JPG的,那么就运行失败 ,或者只有JPG的 没有NPG的也失败, 现在能不能改成2个批处理,一个只运行JPG的,一个只运行NPG的。
这是您 之前的代码
@echo on
chcp 65001 >nul
cd /d "%~dp0"
set "path=E:\ImageMagick;%path%"
dir /b /a-d "E:\ImageMagick\*.exe"
dir /b /a-d "*.jpg" "*.png"
for %%i in ("%~f0\..") do (
echo magick.exe "*.jpg" "*.png" "%%~nxi.pdf"
magick.exe "*.jpg" "*.png" "%%~nxi.pdf"
)
作者: Batcher 时间: 2023-10-9 11:15
回复 33# daijt
自动判断.bat- @echo off
- chcp 65001 >nul
- cd /d "%~dp0"
- set "path=E:\ImageMagick;%path%"
- for %%i in ("%~f0\..") do (
- echo magick.exe "*.jpg" "*.png" "%%~nxi.pdf"
- if exist "*.jpg" (
- if exist "*.png" (
- magick.exe "*.jpg" "*.png" "%%~nxi.pdf"
- ) else (
- magick.exe "*.jpg" "%%~nxi.pdf"
- )
- ) else if exist "*.png" (
- magick.exe "*.png" "%%~nxi.pdf"
- )
- )
复制代码
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |