problems with my first library pdf to jpg
I'm trying to do my first library, convert pdf to jpg but something goes wrong.
The code of the library:
What am I doing wrong? thanks
I'm trying to do my first library, convert pdf to jpg but something goes wrong.
The code of the library:
The B4a code:package anywheresoftware.b4a.pruebas.PdfToJpg;
import java.awt.Graphics2D;
import java.awt.RenderingHints;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import java.util.List;
import javax.imageio.ImageIO;
import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.pdmodel.PDPage;
import anywheresoftware.b4a.BA.ShortName;
import anywheresoftware.b4a.BA.Version;
import anywheresoftware.b4a.BA.DependsOn;
@ShortName("PdfToJpg")
@Version(1f)
@DependsOn(values={"pdfbox-app-1.6.0","fontbox-1.6.0"})
public class PdfToJpg
{
/* Convierte el documento PDF a imagen con un tamaño grande*/
public void Convertir_1(String path, String pdf){
try {
PDDocument document = null;
//se carga el documento
document = PDDocument.load(new File(path + pdf));
//se obtiene el numero de paginas del PDF
int numero_paginas = document.getNumberOfPages();
System.out.println("texto: " + document.getNumberOfPages());
//Se capturan todas las paginas
List pages = document.getDocumentCatalog().getAllPages();
//un ciclo repetitivo para crear todas las imagenes
for(int i=0; i<=numero_paginas-1;i++){
System.out.println( "creando imagen - " + i);
//se obtiene la pagina "i" de n paginas
PDPage page = (PDPage)pages.get( i );
//se convierte la hoja pdf a imagen y se coloca en memoria
BufferedImage image = page.convertToImage();
// se escribe a imagen en disco
ImageIO.write(image, "jpg", new File( path + "tmp_" + i + ".jpg"));
System.out.println( "imagen [" + i + "] creada");
}
document.close();//cerramos el pdf
} catch (IOException ex) {
}
}
/* Convierte el documento PDF a Imagen, escalando el archivo al
* tamaño de las hojas del PDF*/
public void Convertir_2(String path, String pdf){
try {
PDDocument document = null;
//se carga el documento
document = PDDocument.load(new File(path + pdf));
//se obtiene el numero de paginas del PDF
int numero_paginas = document.getNumberOfPages();
System.out.println("texto: " + document.getNumberOfPages());
//Se capturan todas las paginas
List pages = document.getDocumentCatalog().getAllPages();
//un ciclo repetitivo para crear todas las imagenes
for(int i=0; i<=numero_paginas-1;i++){
System.out.println( "creando imagen - " + i);
//se obtiene la pagina "i" de n paginas
PDPage page = (PDPage)pages.get( i );
//se convierte la hoja pdf a imagen y se coloca en memoria
BufferedImage image = page.convertToImage();
//ancho y alto de la pagina pdf
int w = (int) document.getPageFormat(i).getWidth();
int h = (int) document.getPageFormat(i).getHeight();
//se crea una nueva imagen en memoria con el tamaño de la hoja pdf
BufferedImage escala = new BufferedImage(w,h, BufferedImage.TYPE_INT_RGB);
Graphics2D graphics2D = escala.createGraphics();
graphics2D.setRenderingHint(RenderingHints.KEY_INTERPOLATION,RenderingHints.VALUE_INTERPOLATION_BILINEAR);
//se añade la imagen
graphics2D.drawImage(image, 0, 0, w, h, null);
// se escribe a imagen en disco
ImageIO.write(escala, "jpg", new File( path + "tmp_e" + i + ".jpg"));
System.out.println( "imagen [" + i + "] creada");
}
document.close();//cerramos el pdf
} catch (IOException ex) {
}
}
}
and the error in phone:Sub Globals
Dim j As PdfToJpg
End Sub
Sub Activity_Create(FirstTime As Boolean)
If File.Exists(File.DirDefaultExternal,"xxx.pdf") Then File.Delete(File.DirDefaultExternal,"xxx.pdf")
File.Copy(File.DirAssets,"xxx.pdf",File.DirDefaultExternal,"xxx.pdf")
j.Convertir_1(File.DirDefaultExternal,"/xxx.pdf")
End Sub
PackageAdded: package:softlucions.pdftojpg
** Activity (main) Create, isFirst = true **
main_activity_create (java line: 214)
java.lang.NoClassDefFoundError: org.apache.pdfbox.pdmodel.PDDocument
at anywheresoftware.b4a.pruebas.PdfToJpg.PdfToJpg.Convertir_1(PdfToJpg.java:34)
at softlucions.pdftojpg.main._activity_create(main.java:214)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:521)
at anywheresoftware.b4a.BA.raiseEvent2(BA.java:143)
at softlucions.pdftojpg.main.afterFirstLayout(main.java:84)
at softlucions.pdftojpg.main.access$100(main.java:16)
at softlucions.pdftojpg.main$WaitForLayout.run(main.java:72)
at android.os.Handler.handleCallback(Handler.java:587)
at android.os.Handler.dispatchMessage(Handler.java:92)
at android.os.Looper.loop(Looper.java:143)
at android.app.ActivityThread.main(ActivityThread.java:4914)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:521)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:858)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
at dalvik.system.NativeStart.main(Native Method)
** Activity (main) Resume **
** Activity (main) Pause, UserClosed = false **
What am I doing wrong? thanks
Last edited: