Discussione

Convertitore PDF multipagina a jpg (Linux GUI)

Convertitore PDF multipagina a jpg (Linux GUI)

Se usi Linux e hai bisogno di convertire in un colpo solo tanti file PDF costituiti da tante pagine ciascuno, in formati immagine come jpg o PNG, allora potrebbe piacerti questa applicazione che ho realizzato io in free pascal. Avevo un disperato bisogno di convertire in blocco tanti pdf multipagina ma ogni applicazione che ho provato mi dava sempre problemi: una non accettava i pdf, l'altra era limitata e per sbloccarla voleva che sottoscrivessi l'abbonamento, un'altra ancora era solo per Windows ecc ecc. Ti lascio il link per scaricarla e il codice sorgente qui di seguito. Fammi sapere se è tutto ok con un commento, a presto! https://mega.nz/file/eElwCSwb#HNYKDepXW2WpZp0xMzQa68g4makPn1Yc1XmHfFzWNlo unit Unit1; {$mode objfpc}{$H+} interface uses Classes, SysUtils, Forms, Controls, Graphics, Dialogs, StdCtrls,Process,fileutil; type { TForm1 } TForm1 = class(TForm) Button1: TButton; Button2: TButton; ComboBox1: TComboBox; SelectDirectoryDialog1: TSelectDirectoryDialog; procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); private public end; var Form1: TForm1; cmd, s,estensione,nome_immagine,cartellaPDF : string; listaPDF: TStringList; flist: textfile; implementation {$R *.lfm} { TForm1 } procedure TForm1.Button1Click(Sender: TObject); var rigadelfile,prima,dopo : string; begin prima:=''; dopo:=''; if combobox1.ItemIndex = 1 then begin estensione:= '-png'; end else begin estensione:='-jpeg'; end; AssignFile(flist,'.list.txt'); reset(flist); rigadelfile:=''; while not Eof(flist) do begin ReadLn(flist,rigadelfile); prima:=rigadelfile; dopo:= StringReplace(prima, cartellaPDF, '', [rfReplaceAll, rfIgnoreCase]); dopo:= copy(dopo,1,length(dopo)-4); cmd:= 'pdftoppm '+estensione+' '+rigadelfile+' '+dopo; RunCommand('/bin/bash',['-c',cmd],s); rigadelfile:=''; end; closefile(flist); button1.Enabled:=false; if FileExists('.list.txt') then DeleteFile('.list.txt'); end; procedure TForm1.Button2Click(Sender: TObject); begin if SelectDirectoryDialog1.Execute then begin cartellaPDF:=SelectDirectoryDialog1.FileName + PathDelim; listaPDF := FindAllFiles(cartellaPDF, '*.pdf', false); try listaPDF.SaveToFile('.list.txt'); finally listaPDF.Free; end; button1.Enabled:=true; end; end; end.