Basta adicionar esses arquivos JAR à pasta raiz do projeto (no eclipse/nwds).
Clique com o botão direito na pasta do projeto (raiz) -> Importar -> Geral (Arquivo de Arquivo) -> selecione seu arquivo JAR
Avalados por :
Olá
o cenário é de Arquivo para Proxy, tenho que ler o conteúdo de arquivos PDF (todo o texto) e escrevi o código
import java.io.IOException;
import java.io.FileReader;
import java.io.BufferedReader;
import java.io.*;
import org.apache.pdfbox.util.*;
import org.apache.pdfbox.pdmodel.*;
class ReadPdf
{
public static void main(String args[])
{
PDDocument pd;
BufferedWriter wr;
try {
File input = new File("original.pdf"); // O arquivo PDF de onde você gostaria de extrair
File output = new File("SampleText.txt"); // O arquivo de texto onde você vai armazenar os dados extraídos
pd = PDDocument.load(input);
System.out.println(pd.getNumberOfPages()); //imprime o número de páginas
System.out.println(pd.isEncrypted()); //falso pois não está criptografado
pd.save("CopyOfOriginal.pdf"); // Cria uma cópia chamada "CopyOforiginal.pdf"
PDFTextStripper stripper = new PDFTextStripper();
stripper.setStartPage(1); //Começa a extrair da página 1
stripper.setEndPage(1); //Extrai até a página 1
wr = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(output)));
stripper.writeText(pd, wr);
if (pd != null) {
pd.close();
}
// Eu uso close() para limpar o fluxo.
wr.close();
}
}
está funcionando, modifiquei para funcionar no mapeamento de java como
import java.io.InputStream;
import java.io.OutputStream;
import java.util.Map;
import java.util.HashMap;
import java.io.IOException;
import java.io.FileReader;
import java.io.BufferedReader;
import java.io.*;
import org.apache.pdfbox.util.*;
import org.apache.pdfbox.pdmodel.*;
import com.sap.aii.mapping.api.AbstractTransformation;
import com.sap.aii.mapping.api.StreamTransformationException;
import com.sap.aii.mapping.api.TransformationInput;
import com.sap.aii.mapping.api.TransformationOutput;
public class PdftoXml extends AbstractTransformation
{
public void transform(TransformationInput in, TransformationOutput out) throws StreamTransformationException
{
PDDocument pd;
BufferedWriter wr;
try {
pd = PDDocument.load(in.getInputPayload().getInputStream()); //converter Tranformationimput para inputstream e passá-lo para o construtor PDDocument para ler o PDF do Inputstream.
//System.out.println(pd.getNumberOfPages()); //imprime o número de páginas
PDFTextStripper stripper = new PDFTextStripper();
stripper.setStartPage(1); //Começa a extrair da página 1
stripper.setEndPage(1); //Extrai até a página 1
String str = stripper.getText(pd);
String content[] = str.split("\n");
String result ="<?xml version=\"1.0\" encoding=\"UTF-8\"?>";
Basta adicionar esses arquivos JAR à pasta raiz do projeto (no eclipse/nwds).
Clique com o botão direito na pasta do projeto (raiz) -> Importar -> Geral (Arquivo de Arquivo) -> selecione seu arquivo JAR
Fico feliz em saber, Vinay
Obrigado, senhor.
Seu blog foi incrível, pude testar meu arquivo binário diretamente no OM e obtive o resultado.
Coloquei o arquivo da API do Apache exatamente como está, com o nome de pdfbox sob o arquivo importado e meu segundo arquivo com o nome de pdf conseguiu acessá-lo.
O programa de mapeamento Java (o segundo) anterior está um pouco equivocado.
result = result.concat("<field1>"+content[0]+"</field1>");
result = result.concat("<field2>"+content[1]+"</field1>");
result = result.concat("<field3>"+content[2]+"</field1>");
result = result.concat("<field4>"+content[3]+"</field1>");
Deve ser
result = result.concat("<field1>"+content[0]+"</field1>");
result = result.concat("<field2>"+content[1]+"</field2>");
result = result.concat("<field3>"+content[2]+"</field3>");
result = result.concat("<field4>"+content[3]+"</field4>");
Atualmente, lê apenas 4 linhas do pdf.
Saudações
Vinay
Olá Vinay,
Os arquivos jar da API externa devem fazer parte do seu arquivo de desenvolvimento Java na pasta raiz.
Você também pode usar o conceito do meu blog para testar diretamente seu código de mapeamento Java a partir do mapeamento de interface/operação.
Atenciosamente,
Praveen Gujjeti
contacto@primeinstitute.com
(+51) 1641 9379
(+57) 1489 6964
© 2024 Copyright. Todos los derechos reservados.
Desarrollado por Prime Institute