Cet article partage le code spécifique de Java combinant des images dans des fichiers PDF pour votre référence. Le contenu spécifique est le suivant
Diagramme d'interface du programme:
Liste de code:
Le package combine des images dans des fichiers PDF; import java.awt.event.actionEvent; import java.awt.event.actionListener; import java.io.file; import java.io.fileFilter; import java.io.fileoutputStream; import java.io.ioexception; javax.swing.jframe; import javax.swing.jLabel; import javax.swing.joptionpane; import javax.swing.jpanel; import javax.swing.jtextfield; import javax.swing.filechooser.filenameextensionfilter; com.ithtpdf.text.DocumentException; import com.ithtpdf.text.image; import com.ithtpdf.text.pagesize; Importer com.ithtpdf.text.pdf.pdfwriter; / * * dessiner l'interface principale et la gestion de l'événement de la bouton - jiemian_main * * / class Jiemian_mian extend 1657254256189721759L; Final Private String Shuoming = "Instructions pour une utilisation: La fonction principale de ce programme est d'étendre les groupes d'images dans le même fichier PDF en proportion. ―" null; privé jbutton jb_save = null; private jbutton jb_ok = null; private jtextfield jt_dir_open = null; private jtextfield jt_dir_save = null; private jLabel jl_dir_open = null; private jLabel jl_dir_save = null; private jLabel jll_lujing_ JLabel jl_lujing_save = null; private jTextfield jtf = null; public jiemian_mian () {jf = new jframe ("combinant des images dans les fichiers pdf"); jp = new Jpanel (); jp.setLayout (null); / * tag * / jl_dir_openn = new JLabel ("s'il vous plaît sélectionner le groupe d'image où le groupe d'images est situé: "); jl_dir_save = new JLabel (" Veuillez sélectionner l'emplacement de synthèse du PDF: "); jl_lujing_open = new JLabel (" Path: "); jl_lujing_save = new JLabel (" Path: "); JL_DIR_OPEN.Setbounds (50, 50, 200, 200 20); jl_dir_save.setbounds (420, 50, 200, 20); jl_lujing_open.setbounds (50, 80, 40, 20); jl_lujing_save.setbounds (420, 80, 40, 20); jp.add (jl_dir_open); jp.add (jl_dir_save); jp.add (jl_lujing_open); jp.add (jl_lujing_save); / * bouton * / jb_open = new Jbutton ("Browse"); jb_save = new Jbutton ("Bowse"); jb_save = new jbutton ("Bowse"); = new JBUTTON ("Démarrer la synthèse"); JB_Open.SetBounds (230, 80, 65, 20); JB_SAVE.SetBounds (600, 80, 65, 20); JB_OK.SetBounds (310, 165, 90, 30); JB_OPEN.ADDACTIONNETER (New Open ()); JB_SAVE.ADDACTIONNEMENTS. Sauve ()); jb_ok.addactionListener (new Begin ()); jp.add (jb_open); jp.add (jb_save); jp.add (jb_ok); / * texte unique (path) * / jt_dir_open = new JTextField (); jt_dir_save = new JTextfield (); jt_dir_open.setbounds (90, 80, 130, 20); jt_dir_save.setbounds (460, 80, 130, 20); jt_dir_open.setEdIT (false); jt_dir_save.setEdIT (false); jp.add (jt_dir_open); jp.add (jt_dir_save); / * textbox (instructions pour une utilisation) * / jtf = new Jtextfield (shuoming); jtf.setboundsbounds (50,25, 615, jtf.setbounds (50,25, 615, jtf. 50); jtf.setEnabled (false); jp.add (jtf); / * Main Box * / jf.add (jp); jf.setSize (715,315); jf.SetResiSable (false); jf.setLocationRelativeto (null); jf.setVisible (true); jf.setdefaultcloseOperation (jframe.exit_on_close} / * Button Traitement pour l'image pour l'image de la classe Privality void ActionPerformed (ActionEvent e) {lujing_get lujing_get = new Lujing_get (jf); // créer l'objet Lujing_get et obtenir le chemin d'image Dir_Openn = Lujing_get.Open_Get (); JT_DIR_OPEN.SETTEXT (DIR_OPEN);}} / * Get Butting Traitement Pdf * / private class Save implémente ActionListener {public void ActionperFormEd (ActionEvent e) {lujing_get lujing_get = new Lujing_get (jf); // Créer un objet Lujing_get et obtient le chemin pour enregistrer l'emplacement généré par le PDF DIR_SAVE = lujing_get.save_get (); jt_dir_save.settext (dir_save);}} / * Traitement d'événements du tronc pour synthétiser pdf * / classe privée commence les impléments ActionListener {public void ActionPerformed (Actionevent e) {/ * gérer avec précision le chemin acquéré * / if (dir_save.equals ("" ") || dir_open.equals ("")) {joptionpane.showMessageDialog (jf, "Veuillez saisir le chemin du groupe d'images et le chemin d'enregistrement du PDF", "Warning", joptionpane.warning_message);} else {file_deal fd = new file_deal (dir_opente if (fd.files ()! = null) {/ * gérer avec précision les règles de dénomination PDF (supprimer le nom du suffixe) * / if (dir_save.lastIndexof (".")! = (-1)) dir_save = dir_save.substring (0, dir_save.lastindexof ("."); Wm_creatpdf (fd.files (), dir_save); // créer un objet wm_creatpdf pour générer pdftry {pdf_creat.creatpdf (); // synthétiser le fichier pdf} catch (documentException e1) {// toDo généré automatique TODO généré automatiquement Block Catch E1.printStackTrace ();} joptionpane.showMessageDialog (JF, "Fichier PDF synthétisé, emplacement:" + dir_save + ". PDF", "Complete", joptionpane.plain_message);} Else Format dans ce folder (.jpg / .png / .bmp / .tif)! "," avertissement ", joptionpane.warning_message);}}}} class Lujing_get {private jframe jf = null; public lujing_get (jframe jf) {this.jf = jf;} public string open_get () {string dir =" jfilo jfc = nouvel jFileChoOser (); // Créez l'objet "Select File Browser" JFC.SetDialogTitle ("Veuillez sélectionner le dossier dans lequel le groupe d'images est"); jfc.setFileSelectionMode (JFileChooser.Directries_only); int returnval = jfc.showEpensedoG (jf); if (jFilechOser. == returnVal) {dir = jfc.GetSelectedFile (). toString ();} return dir; // chemin de retour} public String Save_get () {String Dir = ""; JFileChoOser jfc = nouvel jFileChoOser (); // Créer l'objet "SELECT Fichier Browser" JFC.SetDialogTitle ("Veuillez sélectionner l'emplacement de synthèse du PDF"); FileNameExtenSterfilter Filter = New FileNameExtensionFilter ("pdf", "pdf"); jfc.setFileFilter (filter); int returnVal = jfc.showsavedialog (jf); if (jFilechoOser.Approve_Option == returnval) {dir = jfc.getSelectedFile (). Tostring ();} return dir; // return path}} / * * obtient le fichier image * * * / class file_deal {private String dir_open = ""; public file_deal (string dir_open) {this.dir_open = dir_open;} public file [] file () {file f = new File (dir_open); file fs [] = f.listfile (new PhotofileFilter ())) 0) return fs; elsereTurn null;}} / * * * Filter de fichier, renvoyez le fichier de format d'image dans le répertoire * * / class PhotoFileFilter implémente fileFilter {@OverRidePublic boolean accepte (file file) {// todia string name généré par Stub if (file.isdirectory ()) return false; else {String name = String Name = file.getName (); if (name.endswith (". jpg") || name.endswith (". png")) return true; elseif (name.endswith (". bmp") || name.endswith (". TIF")) "iTextpdf.jar", l'adresse de téléchargement est: http://www.java2s.com/code/jar/i/i/iithtpdf.htm) * * * / class wm_creatpdf {final Float privé a4_weight = 595-60; // la largeur du fichier privé pour la hauteur a4_HE_HEIGHT = 842-60; files = null; chaîne privée dir_save = ""; public wm_creatpdf (fichiers file [], chaîne dir_save) {this.files = files; this.dir_save = dir_save;} public void CreatPdf () lève DocumentException, ioException {document document = nouveau document (pagesize.a4,30,30,30,30); // Create Document Container Pdfwriter.getInstance (document, nouveau FileoutputStream (Dir_Save + ". PDF")); // Create Writing (PDF Type);););); conteneur float pour cent = 100; float w, h; for (int i = 0; i <files.length; i ++) {image img = image.getInstance (files [i] .getCanonicalPath ()); / * Process Image Scale (A4_weight * 100) / w; elseif ((w <a4_weight) && (h> a4_height))% = (a4_height * 100) / h; elseif ((w> a4_weight) && (h> a4_height)) {pour cent = (a4_weight * 100) / w; h = (h * pour cent) / 100; if (h> a4_height) pour cent = pourcent (A4_height * 100) / h;} img.scalepercent (pour cent); document.add (img);} document.close (); // fermer le conteneur} public static void main (String [] args) {// too a automatiquement généré la méthode Stub new Jiemian_mian ();}} Ce qui précède est tout le contenu de cet article. J'espère que cela sera utile à l'apprentissage de tous et j'espère que tout le monde soutiendra davantage Wulin.com.