From e86d3f41b3aeee14bea0c856cb5ff2584d698277 Mon Sep 17 00:00:00 2001 From: LucasV-IUT Date: Sun, 28 Nov 2021 00:33:17 +0100 Subject: [PATCH] Test d'affichage PDF -> Fonctionnel (voir PDFTest.java) --- .gitignore | 4 +- LecteurPdfDoubleAffichage.iml | 2 + .../lecteur_pdf/affichage/Fenetre.class | Bin 903 -> 903 bytes .../affichage/gestionFenetre.class | Bin 871 -> 741 bytes .../lecteur_pdf/document/Page.class | Bin 2585 -> 2650 bytes .../lecteur_pdf/document/Pdf.class | Bin 2422 -> 1722 bytes .../lecteur_pdf/menu/Menu.class | Bin 3051 -> 2838 bytes .../menu/SelectionnerFichier.class | Bin 1585 -> 1585 bytes .../lecteur_pdf/document/PageTest.class | Bin 848 -> 514 bytes .../lecteur_pdf/document/PdfTest.class | Bin 866 -> 1407 bytes src/lecteur_pdf/affichage/Fenetre.java | 4 +- src/lecteur_pdf/affichage/gestionFenetre.java | 6 -- .../document/{Pdf.java => PDF.java} | 68 ++++++------------ src/lecteur_pdf/document/Page.java | 66 +++-------------- src/lecteur_pdf/menu/Menu.java | 1 - tests/lecteur_pdf/document/PDFTest.java | 33 +++++++++ tests/lecteur_pdf/document/PageTest.java | 32 +-------- tests/lecteur_pdf/document/PdfTest.java | 46 ------------ 18 files changed, 74 insertions(+), 188 deletions(-) rename src/lecteur_pdf/document/{Pdf.java => PDF.java} (52%) create mode 100644 tests/lecteur_pdf/document/PDFTest.java delete mode 100644 tests/lecteur_pdf/document/PdfTest.java diff --git a/.gitignore b/.gitignore index 48ede76..92e998e 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,7 @@ # Meta données de IntelliJ Idea .idea/* +LecteurPdfDoubleAffichage.iml # Dossiers des fichiers compilés -out/ \ No newline at end of file +out/ +*.class \ No newline at end of file diff --git a/LecteurPdfDoubleAffichage.iml b/LecteurPdfDoubleAffichage.iml index 37c5fcb..ec0d6bb 100644 --- a/LecteurPdfDoubleAffichage.iml +++ b/LecteurPdfDoubleAffichage.iml @@ -35,5 +35,7 @@ + + \ No newline at end of file diff --git a/out/production/LecteurPdfDoubleAffichage/lecteur_pdf/affichage/Fenetre.class b/out/production/LecteurPdfDoubleAffichage/lecteur_pdf/affichage/Fenetre.class index 84b20b0659023b976616395e6267400e04a75eb3..f2e5abeeea97c47ea0971b7de4446a65f971a48e 100644 GIT binary patch delta 25 gcmZo?Z)fK?^>5cc1_lP3jT|aWOfGJl^_U_V0c}wSNdN!< delta 25 gcmZo?Z)fK?^>5cc1_lP(jT|aWOetxb^_U_V0dD>WiU0rr diff --git a/out/production/LecteurPdfDoubleAffichage/lecteur_pdf/affichage/gestionFenetre.class b/out/production/LecteurPdfDoubleAffichage/lecteur_pdf/affichage/gestionFenetre.class index a5653c2ffde83c834c5c4c033c808ccb5c483966..305461ed28816e5ea6a58d46b275a450fddffbb2 100644 GIT binary patch delta 115 zcmaFP_LP6?V3{wrO2m=d)_~f}vl8lU#w==16$}n&+ z$TDy;$W8vhq-3c8WXUtIF)%Vn0`)2YF$l2iU=Y{{q!}5cfFu_K6OdG5U}jJTiYNft HObm(urKS;n delta 277 zcmaFL`kamH)W2Q(7#J9A88kL>&1bCVa;->CEhx#%&nsqUP+(*b&Ppsx)X&V<_wGBU8_CT8X_GKgtJ`+(KwB<7{-2bUCO=A~O}h5_Xhi_(jM zhGCIrWZ(+UFD*(=b<502Wt@D5v4B;IfrUYKvLlluBh%z)CN*It1`Y;g205TBSr`}@ zQol2kq(K6!uB>FvWnaF%_qX@t&%Yo42H+yTN}vl7 z4N)C2bPEiuoA=F4qx!%u7mOQOb5%M5-52e$?OzgzjHVV7=s{dVLdPEH0!c?&zN~ro zD)}`d?^?BzEc?d1S&#ynU0pOCJ1;OcnsvQ`VOC75C=H6Px|@8I+`M#*`RVC~UOJPy zqhYVWF$KeLOoGTbjx3nY6|WGOzPf42if_B+1bPusVD{-4zPXFKalYV;HXp9N$f}0{sQ)->j8Z zr8l>xQdSL8oY8Pt;MB7wJXy|5PgQ1qdgfNJkzN8LII605Odz$(kW-7%sc(QdPT-`5 zQ#wYG5;*Z9k3m`%wkj-Zc$c$!Y zc4;dWq~0(e_=c^DY)sbH)}$x%fknD9a8|=P9p_aMh655kM_8bT$zQVbelgBEzpmpA zyvaH{rdJ@H1w=-fdt1jl%2u4h*QH%3`bs*jvvrho(X1)*$8iboX}GN83YePy9rot7 zs=h2SXKu|WcS8KOYs|BZe$Mx#SxOJE6Q^}t#f-pE$=r}rZrL)4%`b9Q_06(RVjLXJ zWE$}YeL-b1fiYhP33Efo`^XCH4_rU(fH*74owLKwbmXugu#bt!S*F7p1W+v!WROssSXKI))tSYjBI*)hhD{VyGQ3SK{+}s9;ph~H zhd^J}F3Yfo7R*(LCj(iRcot31R{O?b)Gyjh;-Tzw$5on)XwENzlN}h@VO|NuZ1&_P zr%%o|t&Lf;(r}n)4XUaJPQX@SGIOmPfju0B%|>SXc5u4WQf)m?ti7x4)E5|eachvl zw(6L0h7CPE!kQN}n@~ItNgZyo&3;Ja+?r>}8C&HzuBO!)#R{^0(sli+@0pcZ=@;F6 zwXYkWCg6dA`-;{z&clE}0dMW{eRo3|A@@S2&zP3)dRqeDHfYf<7#h89mh+CR9?!b& zMy-+#gKh7Fwv&d3P*IJn4&ry)@>LrKh@+e`U7QPD{BYC+D-I|=V<73U%<~oQzD5)g zK97uTLyV0N*P(rfJx|cPvW>pq$AXjoIu86onF#Li_aL=_v(!7sH|Ti`a_}9d<-5vC zXbT_WBkt7xW89-ZwfclIT`;-shxmtT{MXQcb-eUFwCInBMtez)B-cq1}28C!OMbv_#c43 z%Ijam(#_}c6O62kZ{x_#)58O=KE&}l#wMa;$!HyCV$QF)5G>zP%ZZ10ckB^Q9%14! zF`$lXPcXZZj5bfTIzHIO?TJ`2_A_mF1-U%NDgkqRk;quu-!xet-W0SiCS6lcTUn2Q0W3HTt literal 2585 zcma)8&2v*#6#v~O>1)C(l+Y4Nt013AN{L_iK`8<)#X$N2?G#!Rd`VuD2d_zdd4ZxX zbads;jpMj*p$j)I)UoZ1oza~OSN=un@7x#CfWhf>^6tCuo{!%-zjMy*pMU@Q8-Q_q z6hjw62EryH=vL^vXFaeou2m^zX7l&#g0Ikh&Z#*5d4*6iwHQMWq6T6ncEMB_bSYvt zyt}pHN~TyXG*<13pP92twu0f*7cJK*Dx{OSs#nTbHLFmzGZf8N*SM@!i?*AYo1ARw zjb&5I26ihP*#?nyUAttt7rl};eR-{5*Lvyd{hpuH}{331aG^iA!Q9O2M~n zr&RVua?-?QEm^i2(lZ9GC=9gMnFf;7U$#0rZ6ic&nfIn>SEPd2u@Rr25vCB?I40;@4$oM>mlXClt?St_?@P6@p*b+FWruAvlzZk# z8zc3PXPm-`4yD&&rf~+%`&Qxpv{h?5inWGV-M}ho(L6iVOm?<)!uUBRA9pJIvxBqk zo@r}pV(iVg*S5m*+pIe>w4SPc=E>2VB%Y*1L^UtG0X)0jaCsF7DRa$v7W9FxBO$-z z#8ik$3k3BZY;r-Ha5GB>~->>zwR-i_6I6+9my?S9Y9U zIbrq6nab4w3k7+~6}bBbA^riU)0L#(Ut`x6dY3k_=lAsRI{MP-kqz{(<3KvJ zj$wHm`iUAL6!|c>E^{Zi6C;11KQ#Ou_6!r{k#AvyzehOq z1CIiLyS3OdRd4gMTW$lBXn{$zz$DthM9?*GLD3KINIu2uU&PYQbzuw1rIAgfr%$DS zL0^3IXPn-^t261*4ZN|Aaak{{V`2+aOQVz+=WoK;z|~F6oDFZ``cizpFSd!BXCs4= z!SDu_2O~eyZkNvK3EmuFo}z@6VBCkWij%0~3~Kyeq|WU692XCCDCYw_txy)4p+s>F z73y@+!Z`KbXBx)&?omHX3o+UlVjW0+!_2A6UjtS%yLTup+3imc3FWMULyX|S5X<9^ za3A1|Qxo`@Rz9JNltH`lgpeK}3zWa;sQjp-^7zxrUv*UeK)d+xUl@>1j{pDw diff --git a/out/production/LecteurPdfDoubleAffichage/lecteur_pdf/document/Pdf.class b/out/production/LecteurPdfDoubleAffichage/lecteur_pdf/document/Pdf.class index 9d687317411035011299baa0168341fcddfeb2b0..386200a549571fadfa1b185a757b635bb5c9a170 100644 GIT binary patch literal 1722 zcma)6-%}e^7(F+ec41ix1fiwGmSU|T2&rh%8rq8d3{y&a0&S*V%H$cW|XL#7X_wN0EobNm5+duyO^%;N}NCOdQI-(}d z;H*IGf&5Ayr0NgtYB{x%lU2(RI6GrkZU44_mKZA-=s>3q!$cQM0aH1oY&W%NI~Gl? z1H10m1Jipt&IybL299LBjN@2k>CAfNM#ZZ73kM~u=G$)7KsPi4eTeDkH}MJv1g^SX zIVEedv~Q(qyL(0VfJ?>QwVYILe%>tw5d@-+D|ZE^6WMkg>9Oo-+|!*nj|)16OkBjU zzy-%D`BuZ*X2R5ND+kjp3UnMD1+JYgwyNh<6PIvVpto%KYmG|L^49lqvTTL@$>_Ku zF!bW2v{L9^GjSEK3!JHiZt?rsm)fTdI=o>bp@{5MjR|rY7(r6eJ1&q+oDO_O@jQYF z6O%{@bk!|C>z1SIH(e_i*j3MJq+e1U;uW^$fg_4B@G z$qJ#4;9V2%;U=TAJ15a&iLuZ_KJ-&Lmo79;V@Ag<6Sr|kp#O;Kwtxb9O@()eZ=fZH zKy&NG2P8Ee)-!A3L&b-|jLWj2xK=%zH?aVctjS$!i9HGusQhzorRG+tRVwNQA9XCZ z!O5(*DS8PjCO%S3^aQ~2zASyY;mHz*#9Uuo%r9(g=Vq4{@&Y0w&^_l?>%Oe|1?e;_ zjk9S8^!;De1qyzSGr*u(yK04!+K@#xc`?;OryxCBom(HH{=QAIU3`gX<`>g!+@4+9 zw=GZL+%Z*Zn0eJ5pk9@=RygChKn4{|dO~hn@pKe66;Wz<9$S}l>$VckR@nEoVrv47 zyxZ_fR`}oO;FL|O4&w?5iLibRL&#zk0&6@)u#T9TQto4FBmxU+5jo!7<>_0l%5O4x z2r=G-{vEoWqI>HQJ-;W%e?jjP3?`F5W3Y+%Zy0%k(PR_X9tUwg=KB(K<&7v({Igw0 zKW;GFG{z{>3EV`Uw}W8@Y~T}~lyw1{MEEK9JrK|76wz^B=Pwf2;uGcN5}i1b+$orU zau?-V)Mm6>apD<$_B}S$8h?tBEd?-sh_QU|Wl9@v;?19MJv=or-NgIDM~4r3jh&qt zRnusEs)@PHN9b6aXd?4XL_B)_!((RbChP(cXiz0i!Q}f6@yzmO9+!EO#4?M^@V!FY zHCks`(kkxLMzXo8>?9Fy^0~*a8rRS987)+^i>+2fu*0v4EY*rWME^llh`(@G$5Qlf pvLx^Y(}gXV;wos?LF9^!AGwbN09BJf2r8)=+O!e~YzJ05{{cXQjhp}g literal 2422 zcma)7TUQfT6#foL92kbm%?sM1RSO{zBi369Y7s$$0a8Q3(2GnaLl_-q(#b@y_x4}3 z5A9lg@uh3EuBD+ZYqfpuTKyCK8GX=xXL1o-+T}wgXZG1=?{9zmJA3|m{M+vUF5qhw zEeI(HYlvW%K<91!uAZ=Ur2WuQoZ9ewpJ* ziT$vK*KtIkwET&4t>i8`n^ZJVN#Lrb!dD;g#-CD2|ro6J!^(NutV1lKgABvmS@x~5m8-V|IH z=$69TNR-zt-jV5y?wGcUX{q2@fqgqRvxeu|wscW3gN$VE9s1NE>Fa)C!d)x54tvLn zCHSm{dAv)ZSib4$zUv9>jSg+oa;k1mwqp@D734H5$%`1EN(5J@;X<-k_42H_;Y;85 zHGF^%DQ1TTf!;>c?Zil0mNn?e69LOkt+DA(5j2ZV>v_}WWtv7ol1&$?A-HeP)buE>m+Ilvrh*w%Fll{6?Nm2ohUEwoIQW9R+@wbaK)C2tBd*FX(%OL$S~!9F>p3SQW7c3=qN^p95&)^DM$R z$4}RJ^dO0TjM07paa_Vl3i&iH!=cyST0*!e@eMeGkKhqhnd{vUPk6XRL9fDZA>i{D z=H@65apH0%QGd@0Bnx9TJP(QKAr4hB`~%`dJ(82J{2krIn^l~>kJdD68;j*=3NN#S z`%nIUz*s#5IKwgiNB^AI>#+HjMd%(1ge z&HN12B=0EJvB5+F_waE&;ZLk5!qa10m}dXd=`GCU;+vS8kqD}|F+2P#cwxW6K`!1C z_!A?e;do!Tid$6}i}#=WbNpwXud#A~tOLvJhK?>67)F6jHpyBsKqT21h8p0Im>Z0= zvf-cLQ)23(1U|#(tW2`hg_g(YQ!uSyM#190I82u>sE}G~6a1INMr8Yb^zuH Q3P`It)Hx9NGVuE9KVteeIRF3v diff --git a/out/production/LecteurPdfDoubleAffichage/lecteur_pdf/menu/Menu.class b/out/production/LecteurPdfDoubleAffichage/lecteur_pdf/menu/Menu.class index 52d40a362f6ed0c7d862479515662eb973699f5c..2c4c6d8cbe3d4bc6e0539fd723c35eef15695bdb 100644 GIT binary patch delta 745 zcmZvZTTc^V5Qd-K?Xs{gv}s5w9!O1Sl@>#yi5RK|1BhOLM^rpf)YcPJZSja&&*+sG zO-%d+-b$(sdg0;Lzv5po#&^4oF~n?kzM1!%dEc4&es;Zyxj%k?{sQde)w285YIixp zQHLpyV;rxJhmtMR9w#|fD}^#f?UOxZbli2h$D+f1j|V)g8BWOPEre|zyR6}f#}*0( z-u_}SUmBU4Etm6Uhvx>#>T9Q~I@}sDma2zZ$1l?tCIs#&P%CB*=c!}P%S`qMiooC zv2>;~^$NQt`lG2jBX4O>udweUlkbT1NBbI(W36y_S*aE|*EN-ga+AcfMYT@cs0?|aq6 zUqIrM1g%69_1PC6{R6)FAJj9`O3*a(E$5zl&b{~ROV`gbXC$ZC^)NN7-K3N@C$6I@1NI}G;hf8_JqQ^ufZ>4LSXA( zuy3$?IiN=qAtRz-9LH2lAy1$%8Vf}dBMB|AFdEYWx`GopDPvm2DQF`7U2^9IR0N@~ z345cc6uLm^hS4TX-;uHxcxp!nI&m0X7(x#wd7445rR$+15Xk8&jMX4QgGArAko?H(ytR*~A{s95i;YOec;qI>NZ0j8P6_jHB?QiR@NPu(hdN11UR$ zcAP*2Kbf>ff$?3=9l53?dV`R&#Turff$?3=9mm3=$K$R`YNdrtI7dL)*Xq?Q&<{B6p}KG~2_i&1oP45J03MDlsZTdBR|xDwHPz=4nECqF|mbkf+El26QPCgE#=JH#GwQ diff --git a/out/test/LecteurPdfDoubleAffichage/lecteur_pdf/document/PdfTest.class b/out/test/LecteurPdfDoubleAffichage/lecteur_pdf/document/PdfTest.class index 2b6cbd71c8b8682d6c380d36a2861de2fc602e7d..0ed7f4b4ba6091e6278e4bf01028006f3384d333 100644 GIT binary patch literal 1407 zcmaJ>Yg5xe6g_Jzff^LbLqP=J77E1o3!fCLXa%%btbTApy3}ZzFlp-RU+IT1BQyR0 z$KT|5Zd;MgsGVk$>^*z-+~Q$w0S4T0kGH`g@nKhxyR1=@bkkWY}lIM6bf3x{em~hTZU@oEOyf z@}>^$$PIjjWM*-)B-jHc`p~a1L~J2&n&GF~4XYA3 zjT+@!D+_r8XB5n)GB>dDuBW>(Nlp3dR;25Z;Lpu+NZ~ZH(wJ%1sI8&dnqm~P^i35f zF)Ij5p}&o2Q!;Ac9E;e|tfCVJp0{HA?ATdckfr_dbjieJY1m9y9t^7gkwnwksD@DC7s_(Q}VWgAhj{^jF?}MW^<+H3CSfildrd(X!i4au`8lj`bsPruj zETx+jD2`%*2Z;P+l3~(I67>03zr$`1PwE8Fwd6;^~ xu!JL6;{hSsr&{{(n6r}43YK{(;wSI~PnpL&S&CRi0?&v@GFIaCoX>ku{sno7Qu_b^ literal 866 zcmaiw+e*Vg5QhJ4YooPikA*6FAy`F&*B(Fwy$Q9{(p%X!+qfm&lysxd<(1%t58y+I zv$cq&;0AVP=bxD`v-A1&{sG_;+c~6=c96+q30a2nkUw)bj!3xsa=T09U`U27*w%aQ2Hi6qpuQjz9bMv8KEFNyKsQ)KEE z8f$+VX_9GUi3$z2OdhD%Av;z`)ehOWLe}h%11n_R4ry2+8+OQv1;VgN%S~bH8{4>l A-~a#s diff --git a/src/lecteur_pdf/affichage/Fenetre.java b/src/lecteur_pdf/affichage/Fenetre.java index 4d95c27..1940871 100644 --- a/src/lecteur_pdf/affichage/Fenetre.java +++ b/src/lecteur_pdf/affichage/Fenetre.java @@ -6,7 +6,7 @@ package lecteur_pdf.affichage; -import lecteur_pdf.document.Pdf; +import lecteur_pdf.document.PDF; import lecteur_pdf.menu.Menu; import javax.swing.*; @@ -24,7 +24,7 @@ public class Fenetre { private JFrame frame; private String titre ; private Menu menu = new Menu(); - private Pdf pdf ; + private PDF pdf ; diff --git a/src/lecteur_pdf/affichage/gestionFenetre.java b/src/lecteur_pdf/affichage/gestionFenetre.java index c8b6c45..ef2bed4 100644 --- a/src/lecteur_pdf/affichage/gestionFenetre.java +++ b/src/lecteur_pdf/affichage/gestionFenetre.java @@ -6,14 +6,8 @@ package lecteur_pdf.affichage; -import lecteur_pdf.document.Pdf; -import lecteur_pdf.menu.Menu; - -import java.io.IOException; import java.util.ArrayList; -import static lecteur_pdf.menu.SelectionnerFichier.ouvrirFichier; - /** * classe de gestion des fenêtres * diff --git a/src/lecteur_pdf/document/Pdf.java b/src/lecteur_pdf/document/PDF.java similarity index 52% rename from src/lecteur_pdf/document/Pdf.java rename to src/lecteur_pdf/document/PDF.java index dd17983..5f92930 100644 --- a/src/lecteur_pdf/document/Pdf.java +++ b/src/lecteur_pdf/document/PDF.java @@ -1,5 +1,5 @@ /* - * Pdf, 17/11/2021 + * PDF, 17/11/2021 * IUT Rodez 2021, INFO2 * pas de copyright, aucun droits */ @@ -11,7 +11,6 @@ import org.apache.pdfbox.pdmodel.PDDocument; import javax.swing.*; import java.io.File; import java.io.IOException; -import java.util.ArrayList; /** * Définis virtuellement un fichier PDF @@ -21,7 +20,7 @@ import java.util.ArrayList; * @author Lucàs VABRE * @author Noé VILLENEUVE */ -public class Pdf { +public class PDF extends JPanel { /** * Espacement entre chaque page @@ -34,16 +33,9 @@ public class Pdf { private final PDDocument document; /** - * Le nombre de pages du document PDF + * Les pages du PDF sous forme de JLabel contenant des images */ - private int nbPages; - - /** - * Les pages du PDF sous forme d’images - */ - private final ArrayList pages; - - private int currentPositionY; + private final Page[] pages; /** * Crée un document PDF qui est capable d’être affiché dans une fenêtre @@ -51,62 +43,46 @@ public class Pdf { * @param fichier Le fichier PDF que l’on veut ouvrir * @throws IllegalArgumentException si le fichier n’existe pas */ - public Pdf(File fichier) throws IOException { + public PDF(File fichier) throws IOException { if (!fichier.exists()) { throw new IllegalArgumentException(); } - this.pages = new ArrayList<>(); - this.document = PDDocument.load(fichier); - this.nbPages = 0; + // this.container = new JPanel(); - this.currentPositionY = 0; + this.document = PDDocument.load(fichier); + this.pages = new Page[document.getNumberOfPages()]; this.loadPages(); } /** - * Charge toutes les pages du document PDF et les stocke dans la liste + * Charge toutes les pages du document PDF et les stocke dans le tableau */ private void loadPages() { - for (nbPages = 0; nbPages < document.getNumberOfPages(); nbPages++) { + int currentPositionY = 0; + + for (int i = 0; i < pages.length; i++) { try { - addPage(new Page(document, nbPages)); + /* Crée un JLabel de la page */ + pages[i] = new Page(document, i); + + /* Défini sa position dans le panel et l’ajoute au panel */ + pages[i].setLocation(0, currentPositionY); + System.out.println(pages[i].getLocation()); + currentPositionY += (pages[i].getHauteur() + OFFSET_PAGES); + this.add(pages[i]); + } catch (IOException e) { e.printStackTrace(); } } } - /** - * Ajoute une page dans la liste - * - * @param page Page à ajouter dans la liste - */ - private void addPage(Page page) { - pages.add(page); - page.setPosition(0, currentPositionY); - currentPositionY += (page.getHauteur() + OFFSET_PAGES); - } - - /** - * @return un panel scrollable contenant toutes les pages du PDF - */ - public JScrollPane getRenderView() { - JPanel panel = new JPanel(); - JScrollPane scrollPane = new JScrollPane(panel); - - for (Page page : pages) { - panel.add(page.getImage()); - } - - return scrollPane; - } - /** * @return Le nombre de pages chargées */ public int getNbPages() { - return nbPages; + return document.getNumberOfPages(); } } diff --git a/src/lecteur_pdf/document/Page.java b/src/lecteur_pdf/document/Page.java index b409b57..4bafcd3 100644 --- a/src/lecteur_pdf/document/Page.java +++ b/src/lecteur_pdf/document/Page.java @@ -23,17 +23,7 @@ import java.io.IOException; * @author Lucàs VABRE * @author Noé VILLENEUVE */ -public class Page { - - /** - * Indice de la page - */ - private final int index; - - /** - * Label contenant l’image de la page - */ - private final JLabel image; +public class Page extends JLabel { /** * Hauteur de la page @@ -45,16 +35,6 @@ public class Page { */ private int largeur; - /** - * Position X de la page dans son panel - */ - private int positionX; - - /** - * Position Y de la page dans son panel - */ - private int positionY; - /** * Crée une page virtuellement pour l’afficher avec java swing * @@ -70,11 +50,7 @@ public class Page { throw new IllegalArgumentException(); } - this.index = index; - this.image = generateImage(document); - - positionX = 0; - positionY = 0; + this.setIcon(generateImage(document, index)); } /** @@ -98,44 +74,22 @@ public class Page { * @return JLabel contenant la page sous forme d’image * @throws IOException En cas d’erreur de lecture */ - private JLabel generateImage(PDDocument document) throws IOException { + private ImageIcon generateImage(PDDocument document, int index) throws IOException { PDFRenderer pdfRenderer = new PDFRenderer(document); - BufferedImage bufferedImage = pdfRenderer.renderImageWithDPI(this.index, + BufferedImage bufferedImage = pdfRenderer.renderImageWithDPI(index, 300, ImageType.RGB); - this.largeur = bufferedImage.getWidth(); - this.hauteur = bufferedImage.getHeight(); + this.largeur = bufferedImage.getWidth() / 2; + this.hauteur = bufferedImage.getHeight() / 2; - ImageIcon icon = new ImageIcon( + System.out.println(largeur + "x" + hauteur); + + final ImageIcon imageIcon = new ImageIcon( bufferedImage.getScaledInstance(largeur, hauteur, Image.SCALE_SMOOTH)); - - JLabel result = new JLabel("", SwingConstants.LEADING); - result.setIcon(icon); - - return result; - } - - /** - * Positionne la page dans son Panel - * - * @param positionX Position X de la page - * @param positionY Position Y de la page - */ - public void setPosition(int positionX, int positionY) { - this.positionX = positionX; - this.positionY = positionY; - - image.setLocation(positionX, positionY); - } - - /** - * @return Le label contenant l’image de la page - */ - public JLabel getImage() { - return image; + return imageIcon; } /** diff --git a/src/lecteur_pdf/menu/Menu.java b/src/lecteur_pdf/menu/Menu.java index ef26460..aedaa3e 100644 --- a/src/lecteur_pdf/menu/Menu.java +++ b/src/lecteur_pdf/menu/Menu.java @@ -10,7 +10,6 @@ import javax.swing.*; import java.awt.event.ActionEvent; import java.io.File; import java.util.ArrayList; -import lecteur_pdf.document.Pdf; /** * Classe pour afficher le Menu "Fichier" avec ses options diff --git a/tests/lecteur_pdf/document/PDFTest.java b/tests/lecteur_pdf/document/PDFTest.java new file mode 100644 index 0000000..5a5c58c --- /dev/null +++ b/tests/lecteur_pdf/document/PDFTest.java @@ -0,0 +1,33 @@ +package lecteur_pdf.document; + +import javax.swing.*; +import java.awt.*; +import java.io.File; +import java.io.IOException; + +class PDFTest { + + /** + * TODO comment main + * + * @param args + */ + public static void main(String[] args) throws IOException { + JFrame frame = new JFrame(); + + frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); + frame.setLocationRelativeTo(null); + + frame.setSize(300,300); + frame.setBackground(Color.gray); + frame.setVisible(true); + + PDF doc = new PDF(new File("F:/test_pdf1.pdf")); + + JScrollPane scrollPane = new JScrollPane(doc); + scrollPane.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED); + scrollPane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED); + frame.getContentPane().add(scrollPane); + } + +} \ No newline at end of file diff --git a/tests/lecteur_pdf/document/PageTest.java b/tests/lecteur_pdf/document/PageTest.java index a60b041..675f697 100644 --- a/tests/lecteur_pdf/document/PageTest.java +++ b/tests/lecteur_pdf/document/PageTest.java @@ -1,46 +1,18 @@ -/* - * PageTest.java, 22/11/2021 - * IUT Rodez 2021-2022, INFO 2 - * pas de copyright, aucun droits - */ - package lecteur_pdf.document; import org.junit.jupiter.api.Test; import static org.junit.jupiter.api.Assertions.*; -/** - * Tests de la classe {@link Page} - * - * @author Léo FRANCH - * @author Tristan NOGARET - * @author Lucàs VABRE - * @author Noé VILLENEUVE - */ class PageTest { - @Test - void setPosition() { - } - - @Test - void getImage() { - } - - @Test - void testSetPosition() { - } - - @Test - void testGetImage() { - } - @Test void getHauteur() { + //TODO } @Test void getLargeur() { + // TODO } } \ No newline at end of file diff --git a/tests/lecteur_pdf/document/PdfTest.java b/tests/lecteur_pdf/document/PdfTest.java deleted file mode 100644 index ae17d4e..0000000 --- a/tests/lecteur_pdf/document/PdfTest.java +++ /dev/null @@ -1,46 +0,0 @@ -/* - * PdfTest.java, 17/11/2021 - * IUT Rodez 2021-2021, INFO2 - * pas de copyright, aucun droits - */ - -package lecteur_pdf.document; - -import org.junit.jupiter.api.Test; - -import static org.junit.jupiter.api.Assertions.*; - -/** - * Tests de la classe {@link Pdf} - * - * @author Léo FRANCH - * @author Tristan NOGARET - * @author Lucàs VABRE - * @author Noé VILLENEUVE - */ -class PdfTest { - - @Test - void getNbPages() { - } - - @Test - void getRenderView() { - } - - @Test - void testGetRenderView() { - } - - @Test - void testGetNbPages() { - } - - @Test - void testGetRenderView1() { - } - - @Test - void testGetNbPages1() { - } -} \ No newline at end of file