Board logo

标题: [文本处理] 【已解决】求图片转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
  1. @echo off
  2. chcp 65001 >nul
  3. cd /d "%~dp0"
  4. REM 根据自己电脑实际情况设置ImageMagick的路径
  5. set "path=C:\Program Files\ImageMagick;%path%"
  6. for %%i in ("%~f0\..") do (
  7.     magick.exe "*.jpg" "*.png" "%%~nxi.pdf"
  8. )
复制代码

作者: 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支持
  1. <# :
  2. @echo off
  3. powershell -noprofile -NoLogo "iex(${%~f0}|out-string)"
  4. pause
  5. exit
  6. #>
  7. $folderPath = 'E:\桌面\PDF'
  8. $folderName = Split-Path $folderPath -Leaf
  9. $word = New-Object -ComObject Word.Application
  10. $doc = $word.Documents.Add()
  11. Get-ChildItem -Path $folderPath\* -File -Include *.jpg,*.png | % {
  12.     [void]$doc.InlineShapes.AddPicture($_.FullName)
  13. }
  14. $doc.SaveAs([Ref] "$folderPath\$folderName.pdf", [Ref] 17)
  15. $doc.Close([Ref] $false)
  16. $word.Quit()
  17. [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编码
执行截图发出来看看
  1. @echo on
  2. chcp 65001 >nul
  3. cd /d "%~dp0"
  4. set "path=E:\ImageMagick;%path%"
  5. dir /b /a-d "E:\ImageMagick\*.exe"
  6. dir /b /a-d "*.jpg" "*.png"
  7. for %%i in ("%~f0\..") do (
  8.     echo magick.exe "*.jpg" "*.png" "%%~nxi.pdf"
  9.     magick.exe "*.jpg" "*.png" "%%~nxi.pdf"
  10. )
复制代码

作者: 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
  1. @echo off
  2. chcp 65001 >nul
  3. cd /d "%~dp0"
  4. set "path=E:\ImageMagick;%path%"
  5. for %%i in ("%~f0\..") do (
  6.     echo magick.exe "*.jpg" "*.png" "%%~nxi.pdf"
  7.     if exist "*.jpg" (
  8.         if exist "*.png" (
  9.             magick.exe "*.jpg" "*.png" "%%~nxi.pdf"
  10.         ) else (
  11.             magick.exe "*.jpg" "%%~nxi.pdf"
  12.         )
  13.     ) else if exist "*.png" (
  14.         magick.exe "*.png" "%%~nxi.pdf"
  15.     )
  16. )
复制代码





欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2