題:
該軟件無需重新壓縮即可快速將許多JPG圖像合併為一個PDF
user3450548
2015-10-29 21:37:04 UTC
view on stackexchange narkive permalink

我過去有很多文檔是使用沒有直接“至PDF”選項的打印機掃描的,所以我有許多名為“ Document1,Document2”的文件夾。每個文件夾中都有許多jpg,例如001.jpg,002.jpg,003.jpg,..

我想將它們合併為一個PDF文件。現代打印機只是做同樣的事情,將JPG“流”封裝並封裝成每頁顯示一次。

我試圖通過選擇所有圖像並以PDF打印來使用簡單的圖像查看器來實現。這導致再次重新壓縮JPG中的所有圖像,但有一些缺點:

  • 如果我選擇的JPG質量太差,則圖像看起來超級cr腳,壓縮後的內容將導致生成丟失
  • 如果我選擇〜100%附近的非常高質量的JPG,以防止產生額外的世代損失,則輸出PDF的文件大小將會很大。

這就是我的想法:

因為存儲在PDF文件中的圖像只不過是JPG流,難道不將原始JPG文件直接包含在PDF容器中而無需重新壓縮它們是不可能的嗎?這將是實現無損失和無壓縮的最佳方法!

如果可以,我可以使用哪種軟件來做到這一點?有沒有類似PDF的 ffmpeg 這樣的東西(我的頭轉到了 ffmpeg -c:v copy 選項以將流複製到另一個容器中)?也許可以使用腳本解析器直接調用它,呈現jpg文件的文件夾和許多命令行選項?

找到適用於所有操作系統的命令行軟件會很好。但是,該軟件必須在Windows下運行。


編輯:除了多平台軟件的主要問題之外,我還試圖理解為什麼Adobe Acrobat本身無法做到這一點。在高級設置對話框中,似乎可以使用以下選項:如果可能,將原始JPEG圖像保存為PDF

Adobe PDF Setting: Save original JPEG images in PDF if possible

這裡的問題可能是由我的圖像查看器程序提供的,該程序以某種方式對JPG進行重新採樣和重新處理,而不是直接在Adobe Acrobat Distiller中將其直接提供給他們。

我應該將&拖放到Acrobat應用程序中?

基於我在該主題上找到的內容:http://stackoverflow.com/questions/13618236/merge-multiple-jpg-into-single-pdf-in-linux我下載了imagemagick win64 exe版本並嘗試使用命令`convert * .jpg file.pdf`在大約380個文件的文件夾中。一場噩夢,我在這台筆記本電腦上有16GB的RAM,但是convert.exe立即將它們填滿! JPG的總文件大小為336 MB,以這種速度,我懷疑該程序只是在導入它們,而是應用了完全重新轉換!也許在文檔中進行“不重新採樣/不轉碼”是可能的,但我還沒有找到。
五 答案:
ComFreek
2015-10-30 15:54:27 UTC
view on stackexchange narkive permalink

img2pdf

網站: https://gitlab.mister-muffin.de/josch/img2pdf/blob/master/README.md

img2pdf是帶有命令行界面的Python庫,可直接(即無損且無壓縮)將JPG圖像嵌入到PDF中。

私有用法

有時候,我需要自動將高分辨率的TIFF文件轉換為單獨的PDF頁面。我利用PowerShell腳本,通過使用.NET API將TIFF降級為JPEG,然後調用img2pdf CLI生成多個PDF。最終,使用pdftk將PDF與其他一些PDF文件結合在一起。
底線是: img2pdf非常適合我的工作流程,我絕對可以推薦。
作者回應

安裝

只要您已經安裝了Python,就可以運行

  pip install img2pdf  

用法

  • 單個JPG文件:

      python.exe -m img2pdf inputImage.jpg -o輸出.pdf  
  • 通配符(在PowerShell中):

      python.exe -m img2pdf $(gci myFolder / *。jpg )-o output.pdf  

    快速測試顯示img2pdf甚至似乎支持文件名中的空格。

  • 通配符(大多數情況下* nix shell):

      python.exe -m img2pdf myFolder / *。jpg -o output.pdf  
  • 轉換一次有很多文件

    在某些情況下,您可以達到允許的命令行字符串的最大長度。該限制因操作系統而異,例如您至少可以使用 2047個字符,具體取決於您的Windows版本,在Linux上,您可以運行 xargs來查看當前限制

    在在這種情況下,您可以在單個文件上運行img2pdf,然後再使用能夠執行此操作的任何PDF工具將它們組合在一起,例如pdftk:

    1. ,用於(* .jpg)中的/ r%i做python -m img2pdf -o%i.pdf%i
      (Windows命令提示符語法)
    2. pdftk.exe * .pdf cat輸出組合。pdf
    3. ol>

img2pdf的作者 josch 對任何包含Windows內置通配符支持的拉取請求開放: https://gitlab.mister-muffin.de/josch/img2pdf/issues/25#note_122

(感謝 user3450548提到了一次轉換多個文件並在評論中共享其解決方案的潛在問題!)

可以一次處理多個文件嗎?如果我嘗試使用`img2pdf -o output.pdf folder / *。jpg`這樣的東西,則會拋出一些錯誤!我必須寫一些批處理所有文件,然後將各種PDF與另一個實用程序一起加入?
@user3450548 img2pdf不支持通配符。幸運的是,如果使用PowerShell而不是cmd.exe,則只需鍵入`./python -m img2pdf $(gci myFolder / *。jpg)-o out.pdf`。
謝謝。 $(gci myFolder / *。jpg)應該為在該目錄中找到的每個文件自動重複路徑嗎?這樣做不會輸出可能在某個時候中斷的超長命令嗎?如果我想使用直接外殼,該怎麼辦?在(* .jpg)中為/ r%i做`python -m img2pdf -o%i.pdf%i`然後使用一些`tool_for_join_pdf.exe文件夾/ *。pdf`嗎?
可能的工作流程是使用pdftk工具將pdf文件加入pdftk.exe * .pdf cat output Combined.pdf
@user3450548實際上,您可以根據[關於cmd.exe命令行字符串限制的MS文章](https://support.microsoft.com/zh-cn/kb/830473)達到2047個字符的(最小)限制。感謝您的評論,我將不勝感激!
不用客氣,不過您可以發郵件給作者,問他是否可以修改img2pdf以接受通配符,這對他來說確實是個小小的改變,但是對我們來說“金黃色的”畢竟應該起作用從概念上講就是這樣。我找不到他的任何郵件:(
一段時間後,我選擇了此解決方案,因為這是最適合我個人需求的解決方案。文件輸出做得很好,沒有多餘的邊界,但是顯然其他人也可以找到其他解決方案。
因為您說作者非常高興地回复郵件,而且在該git網站上註冊似乎有些麻煩。您能否要求他改進允許在名稱上使用通配符的程序?非常感謝 :)
-1
謝謝你,兄弟! ;)
baitisj
2015-10-30 03:24:24 UTC
view on stackexchange narkive permalink

PDFJam

PDFJam texlive的一部分,是一個包裝腳本,它為 LaTeX 提供了前端pdfpages 實用程序

此腳本接受JPG和PNG圖像以及PDF文件,並將它們串聯在一起。輸入不會重新壓縮,並嵌入到PDF流中。

用法

以下命令將在當前工作目錄中創建一個輸出文件,名為 XXX-joined .pdf ,其中 XXX 是命令行上第一個文件的名稱:

  pdfjam --fitpaper true --rotateoversize true-後綴已加入/ path / to / *。jpg  

平台

  1. Windows

    下載並安裝Cygwin。確保選擇 texlive-collection-binextra 軟件包: Installation of the texlive-collection-binextra package

  2. 基於Linux的Arch發行版

    使用 pacman 安裝 texlive-core

  3. 基於Debian的(Ubuntu等)

    該工具作為 texlive-extra-utils軟件包的一部分進行分發。

  4. ol>
謝謝,我也找到了這個:https://gitlab.mister-muffin.de/josch/img2pdf/tree/master問題是我在Windows上,有機會找到其中一個的Windows命令行exe端口?不使用cygwin之類的東西?
好的,我設法使其在Windows上運行,因此我將共享安裝詳細信息以幫助其他用戶。但是,我仍在尋找更多的Native Windows命令行程序。方法是:在安裝過程中(或通過再次重新運行安裝程序進行下一步下一步安裝)安裝Cygwin(我使用x64版本),在軟件包選擇中選擇以下內容:`texlive`,`texlive-collection-basic `,`texlive-collection-latex`,`texlive-collection-latexrecommended`。完成此操作後,您可以下載PDFJam軟件包並將其放入`/ home`目錄,並記住編輯`.bashrc`文件。
通過在末尾添加`export PATH = $ PATH:/ home / user / pdfjam / bin`行來編輯.bashrc。此時,重新啟動Cygwin終端,您可以使用baitisj在他的答案中描述的命令。
在PDFJam網站上,他們還討論了[Multivalent](http://multivalent.sourceforge.net),這是一個基於Java的程序包,能夠以某種方式處理PDF(它們說的更為完善)。由於Windows上的PDFJam需要Cygwin和某些設置,Multivalent需要Java,並且如果未安裝到Java擴展中,至少要使用`java -classpath /path/to/Multivalent.jar tool.XXX [options] files“這樣的命令行但是不知道Multivalent是否像我們希望的那樣像PDFJam那樣包含圖像而無需重新壓縮圖像!也許我可以嘗試向他們發送郵件並詢問:)
@user3450548-將平台要求添加到您的原始問題中可能會有所幫助:-)
是的,我修改了原始帖子。通過使用Cygwin,我們可以說它幾乎是多平台的。現在,我可以接受答案,但是為了提高社區的知識水平,我仍然在等待是否還會有其他選擇。您的回答值得肯定,但是我因缺乏聲譽而不能這樣做:(希望SR社區提供更多幫助!
讓我們[繼續聊天中的討論](http://chat.stackexchange.com/rooms/30933/discussion-between-baitisj-and-user3450548)。
user3450548
2015-10-30 20:28:55 UTC
view on stackexchange narkive permalink

Adob​​e Acrobat

不是這三種解決方案中最好的,請也查看下面的PDFJam

我添加此答案只是為了做出貢獻對社區。但我不會投票,因為此答案僅針對主要主題提供了解決方案,而沒有考慮次要要求:

  • 免費
  • 命令行
  • multiplatform

Adob​​e Acrobat本身允許將多個JPG文件顯然連接在一起,而無需進行重新壓縮。

可以通過多種方式調用該接口,我將為它們顯示相應的圖像。

通過選擇許多文件並右鍵單擊它們:

Combine Files called by right click

通過單擊Adobe Acrobat Pro中的創建按鈕:

Combine Files called by Acrobat main window

在任何情況下,Adobe Acrobat都會打開“合併文件”窗口,使您可以選擇要添加的文件或文件夾:

Combine Files interface

請保留所選的中等設置文件大小,如果要使用默認選項(您沒有請勿更改Adobe PDF Standard的設置,以其他方式覆蓋它們)該程序將輸出一個包含JPG的單個PDF文件。如果只有336 MB的磁盤空間,則pdf會附帶337 MB的文件,增加1MB的開銷。

使用PDFJam腳本,多餘值幾乎為零,從而產生了336 MB的PDF文件。同樣,通過保持標准設置,Acrobat可以將圖像拉伸到A4或Letter尺寸。相比之下,PDFJam只是創建了一個pdf,而每個頁面都適合JPG大小。

顯然,通過保留默認值,可能是通過調整兩個程序中的選項,可以獲得類似的輸出。

Sam
2016-06-26 14:19:47 UTC
view on stackexchange narkive permalink

jpeg2pdf

這是一個很小的命令行工具,可以從JPG創建PDF文件而無需重新壓縮它們。

在此處獲取: http:// jpeg2pdf .sourceforge.net /

功能

  • 將原始JPG存儲為PDF格式
  • 各種紙張尺寸選項(包括裁切為圖像尺寸)
  • 各種縮放比例選項(包括保留原始圖像比例)

用法

  jpeg2pdf * .jpg -o document.pdf 代碼> 

有關更多信息,請參見自述文件和內置幫助。

平台

它說它是跨平台的,但是我只測試了它在Windows上。看起來您需要在類似Unix的系統上從C源代碼進行編譯。

Sam
2016-06-26 14:45:15 UTC
view on stackexchange narkive permalink

圖像轉換為PDF或XPS

(以前稱為JPEGtoPDF)

這是一個用VB.NET編寫的Windows GUI應用程序。它並沒有聲稱它在PDF輸出中存儲了原始JPG數據,但是當我對其進行測試時,它確實保留了原始JPG數據。

在此處獲取: http:// compulsivecode.com/Project_ImageToPDF.aspx

jpeg2pdf相比,它可能會比較慢。但是,不需要安裝,使用起來似乎很簡單,因此對於不熟悉命令行的人來說可能很有用。

Image to PDF or XPS Screenshot

問題是..它是否重新壓縮/重新編碼?在這種情況下,答案是不可接受的。
@user3450548,並沒有聲稱它保留了原始JPEG數據,但是當我對其進行測試(使用xpdfbin`pdfimages -j`命令提取JPG和Windows`fc`命令將它們與原始圖像進行比較)時,JPG PDF中的數據與原始數據相同。
謝謝你的建議;)


該問答將自動從英語翻譯而來。原始內容可在stackexchange上找到,我們感謝它分發的cc by-sa 3.0許可。
Loading...