Boa tarde, gostaria de saber se é possivel pegar informações de um .doc e trazer para o java, como por exemplo, qtde de lihas, colunas, paragrafos…
Valeu!!!
Boa tarde, gostaria de saber se é possivel pegar informações de um .doc e trazer para o java, como por exemplo, qtde de lihas, colunas, paragrafos…
Valeu!!!
Se naum me engano DOCX (Office 2007) eh um zip com XML dentro, sei la… me disseram que era assim que trabalhava… Eu inclusive vou estudar isso para implemtentar e publicar artigos com leitura/escrita de documentos do office e openoffice… (de preferencia OXML, ODF e DOCX)
AAAA tem uma API que vasculha EXCEL, portante deve ter para Word tbm!
Abracoss
O número de linhas em um documento só pode ser determinado se ele for formatado. Como quem formata o documento é o próprio Microsoft Word, decorre que é necessário invocar alguma API do Microsoft Word para que você consiga saber o número de linhas.
Procure por “Microsoft Word” e “VBA”.
Provavelmente você terá de escrever um programa em VBScript ou JScript que invoque o Microsoft Word sobre um determinado documento, conte as linhas, e retorne o resultado (talvez em um arquivo) para você.
Hum… ele quer informações do documento que não estão explicitamente escritas nele; por exemplo, contagem de linhas. Para saber quantas linhas tem um documento, é necessário formatá-lo, já que dependendo do tamanho das fontes, das quebras de linhas e de páginas, das figuras e outras coisas da formatação etc. você vai ter mais ou menos linhas.
(A contagem de parágrafos e colunas acho que seja possível com o POI, já que isso está escrito no documento. Mas não conheço suficientemente o POI para saber se isso é realmente possível).
apache POI resolve sim…
pelo menos no que o amigo quer fazer…
o ruim e que a documentação não e muito boa… ela não traz muito exemplos do q fazer…
olha uma classe teste q eu estava fazendo pra testar o negocio…
na verdade ia na base da programação TE (tentativa e erro XD)
[code]
/**
*
@author jmanetti
*/
public class MainStub {
public static void main(String args[]) throws FileNotFoundException, IOException {
/** Le um documento ja existente */
InputStream input = new FileInputStream("c:\Hi.doc");
HWPFDocument word = new HWPFDocument(input);
// Obtem a estrutura do documento
Range range = word.getRange();
// insere no final do arquivo
range.insertAfter("ESTE E UM TESTE DE INSERÇÃO DE CARACTERES NO FIM");
range.insertBefore("ESTE E UM TESTE DE INSERÇÃO DE CARACTERES NO INCIO");
System.out.println("RANGE >>> " + range.numParagraphs());
range.replaceText("", "OOO", 100);
// processar info do arquivo
WordExtractor wordExt = new WordExtractor(word);
for(String str : wordExt.getParagraphText()){
System.out.println("Texto >>> " + str );
}
/* Manipula Paragrafos*/
// paragrafo aqui e linhas...
Paragraph paragraph = range.getParagraph(15);
paragraph.replaceText("", "OoO", 0);
/* manipula estilo*/
StyleSheet style = word.getStyleSheet();
ParagraphProperties pp = style.getParagraphStyle(1);
/* Manipula caracter similar ao paragrafo eu acho hehehe*/
CharacterRun character = paragraph.getCharacterRun(1);
character.insertAfter("TESTE DE PALAVRAS INSERIDAS");
Section section = paragraph.getSection(0);
section.insertAfter("TESTE DE INSERÇÃO EM LINHAS");
character.replaceText(" teste ", " NOVO TESTE ", 0);
/** cria um novo documento */
OutputStream output = new FileOutputStream("c:\Hi2.doc");
word.write(output);
}
}[/code]
ve se isso ajuda…
blz
blz, consegui alguns resultados como:
qtde de páginas, qtde linhas, mas preciso saber a qtde de palavras, paragrafos caracteres com espaço e sem espaço, se alguem tiver algum link referente a isso posta aí.
Valeu
[quote=Renato_natos]blz, consegui alguns resultados como:
qtde de páginas, qtde linhas, mas preciso saber a qtde de palavras, paragrafos caracteres com espaço e sem espaço, se alguem tiver algum link referente a isso posta aí.
Valeu
[/quote]
nossa cara!!!
sou um cara curioso… oq vc quer fazer com esta info?
=)
desulpe a curiosidade ^^
opa,
sabe que nem eu sei bem para que vou usar essas informações?
O que sei é que preciso fazer e com urgencia.
Vou deixar aqui o encontrei até agora, caso alguem passe pelo mesmo problema que eu…
Mas ainda preciso de algumas dicas, se algume souber algo…
File f = new File("roteiro.doc");
FileInputStream is = new FileInputStream(f);
HWPFDocument wdoc = new HWPFDocument(is);
WordExtractor extractor = new WordExtractor(wdoc);
String conteudo = extractor.getText();
conteudo = conteudo.replace("\n", " ");
/* contator de linhas */
int teste = extractor.getParagraphText().length;
/* Quantidade de paginas */
int teste1 = wdoc.getSummaryInformation().getPageCount();
Valeu rapaziada!!
Só para completar as informações:
/* contator de paragrafos */
int teste = extractor.getParagraphText().length;
/* qtde palavras */
int teste1 = wdoc.getDocProperties().getCWords();
/* Quantidade de paginas */
int teste2 = wdoc.getSummaryInformation().getPageCount();
/* caracteres com espaço */
int teste3 = wdoc.getDocProperties().getCChWS();
/* qtde de linhas */
int teste4 = wdoc.getDocProperties().getCLines();
/* caracteres sem espaço */
int teste5 = wdoc.getDocProperties().getCCh();
Valeu, até mais!!
Olá,
Tenho a necessidade de ler cada palavra de cada parágrafo e verificar se ela está negrito ou não.
Alguém sabe como fazer isso?
Muito obrigado
quando vc recupera a palavra em negrito, ela tem alguma diferença de uma palavra que não está em negrito?
No primeiro exemplo acima, se eu colocar esta verificação abaixo ele apenas indica que o parágrafo começa com negrito ou não.
System.out.println(character.isBold());
Por exemplo:
Uma frase assim: Negrito Normal
ele retornaria true
Uma frase assim: Normal Negrito
ele retornaria false
O que eu preciso é analisar cada palavra de um parágrafo e verificar se ela é negrito ou não.
Obrigado pela ajuda.
Ok, tendo esta informação, não seria o caso de vc colocar todas as palavras em uma lista, fazer um loop, e para cada iteração vc verificar se a primeira letra da palavra é bold e então tomar as decisões?
Hum…
Pode até ser uma solução, mas como vou colocar estas palavras numa lista mantendo as propriedades de negrito ou normal?
vc recupera o texto todo em uma string?
Isso, posso pegar o texto todo ou só o parágrafo em um string.
vc já tentou usar o metodo split da string?
Meu problema não está em dividir o parágrafo e sim descobrir se cada palavra é negrito ou não.
Posso até usar o split, mas como vou saber se cada item está em negrito ou não?
então, se vc tem o texto: meu texto é negrito
//vc coloca ele em uma string
String texto = meu texto é negrito
//Depois vc utiliza o split
String palavras[] = texto.split(" ");//faça o split pelo espaço
//Faça as iterações
for(String palavra : palavras){
//aqui vc faz a vericacao da primeira letra da palavra
if(verifica se é bold){
System.out.Println("Palavra em negrito");
}else{
System.out.Println("Palavra sem negrito");
}
}