OVH Cloud OVH Cloud

pb de format

12 réponses
Avatar
remy
bonjour

il y a une raison valable qui justifie
le fait de ne pas trouver ni dans fpo apache ni dans itext
un filtre qui permette de lire les images d'un pdf

dans gimp ils font comment
j'ai un tableau de byte et je veux une "image" gif jpeg bnp
avec un boot de code histoire de faire serrieux sous itext
l'on envoie pas beaucoup sur ce groupe
le filtre s'appelle CCITTFaxDecode




import java.awt.*;
import java.io.*;
import javax.swing.*;
import com.lowagie.text.*;
import com.lowagie.text.pdf.*;
import com.lowagie.text.pdf.codec.*;

import com.lowagie.text.pdf.PdfObject;
import java.util.*;


public class TestLecturePdf {


public static PdfReader pdf;
public static int nbDic =0;
public static RandomAccessFileOrArray file;

public static void main(String[] args)
{

String name = args[0];


try {

pdf=new PdfReader(name);
file=new RandomAccessFileOrArray(name);
System.out.println(pdf.getInfo()+" "+pdf.getPdfVersion());

PdfDictionary dic=pdf.getCatalog();

for(int i=1;i<pdf.getNumberOfPages();i++)
{
dic=pdf.getPageN(i);
nbDic=0;
System.out.println("################ page "+i+" ################");
lectureDic(dic);

}



}
catch(IOException ioe)
{
System.err.println(ioe.getMessage());
}


}

public static void lectureDic(PdfDictionary dic)throws IOException
{
PdfName key;
Object obj;
nbDic++;
System.out.println("*******DIC********"+nbDic);
System.out.println(dic.getKeys());
for (Iterator it = dic.getKeys().iterator(); it.hasNext();)
{

key= (PdfName)it.next();
obj= (Object)pdf.getPdfObject(dic.get(key));

if (obj instanceof PRStream)
{
PdfObject filter =
pdf.getPdfObject(((PRStream)obj).get(PdfName.FILTER));
getStreamBytes((PRStream)obj,file,pdf);


}





if( obj instanceof PdfDictionary )
{
lectureDic((PdfDictionary)obj);
}
}
}



public static byte[] getStreamBytes(PRStream stream,
RandomAccessFileOrArray file,PdfReader pdf) throws IOException
{

PdfReader reader = stream.getReader();
PdfObject filter = pdf.getPdfObject(stream.get(PdfName.FILTER));
byte b[];
if (stream.getOffset() < 0)
{
b = stream.getBytes();
}
else {
b = new byte[stream.getLength()];

file.seek(stream.getOffset());
file.readFully(b);

}

ArrayList filters = new ArrayList();

if (filter != null) {
if (filter.isName())
filters.add(filter);
else if (filter.isArray())
filters = ((PdfArray)filter).getArrayList();
}
ArrayList dp = new ArrayList();
PdfObject dpo = pdf.getPdfObject(stream.get(PdfName.DECODEPARMS));
if (dpo == null || (!dpo.isDictionary() && !dpo.isArray()))
dpo = pdf.getPdfObject(stream.get(PdfName.DP));

if (dpo != null) {
if (dpo.isDictionary())
dp.add(dpo);
else if (dpo.isArray())
dp = ((PdfArray)dpo).getArrayList();
}



String name;
for (int j = 0; j < filters.size(); ++j)
{
name =
((PdfName)PdfReader.getPdfObject((PdfObject)filters.get(j))).toString();
if (name.equals("/FlateDecode") || name.equals("/Fl"))
{
b=null;
}
else if (name.equals("/CCITTFaxDecode"))
{
System.out.println("a faire CCITTFaxDecode ");
System.out.println("taille "+b.length);
}
}


return b;

}

}











--
des conneries j'en ai dites oui oui je vous assure...
mais elles n'engagent que votre perception
remy

10 réponses

1 2
Avatar
Nicolas George
remy , dans le message <43301a25$0$5363$, a
écrit :
<snip>

apt-get install remy2french
E: Couldn't find package remy2french
Avatar
remy
remy , dans le message <43301a25$0$5363$, a
<snip>

apt-get install remy2french
E: Couldn't find package remy2french
en gros pourquoi ses abru... du bnf ont mis des images

au format fax du citt si je lis bien CCITTFaxDecode
et maintenant qu'elles y sont
je fais comment si je veux les extraire et avec quoi
je peux extraire les fax du savoir a la francaise
de la bibliotheque de France

par exemple

ftp://ftp.bnf.fr/010/N0103019_PDF_1_122.pdf


--
des conneries j'en ai dites oui oui je vous assure...
mais elles n'engagent que votre perception
remy

Avatar
R12y
On Tue, 20 Sep 2005 16:49:13 +0200, remy wrote:

en gros


encore plus gros s'il te plait...

--
SPIP, phpNuke, Plone, opengroupware... c'est bien
CPS c'est mieux: http://www.cps-project.org/
Hébergement de sites CPS: http://www.objectis.org/

Avatar
Vincent Ramos
remy égrapsen en <43302003$0$5402$ :

en gros pourquoi ses abru... du bnf


De *la* BNF. Abrutis : je ne pense pas.

ont mis des images
au format fax du citt si je lis bien CCITTFaxDecode
et maintenant qu'elles y sont
je fais comment si je veux les extraire et avec quoi
je peux extraire les fax du savoir a la francaise
de la bibliotheque de France
par exemple
ftp://ftp.bnf.fr/010/N0103019_PDF_1_122.pdf


Je ne comprends pas tous vos propos. Pour moi, ce fichier est un PDF.
Pour le transformer en images, essayez pdftoppm.

--
apt-get moo

Avatar
Nicolas George
Vincent Ramos , dans le message
<433184b3$0$20862$, a écrit :
Je ne comprends pas tous vos propos. Pour moi, ce fichier est un PDF.
Pour le transformer en images, essayez pdftoppm.


En l'occurence, pdfimages, pour extraire les images me semble plus adapté.
pdftoppm va rendre les images à une définition qui n'est pas forcément leur
définition native.

Avatar
remy

En l'occurence, pdfimages, pour extraire les images me semble plus adapté.
pdftoppm va rendre les images à une définition qui n'est pas forcément leur
définition native.


peut etre mais comme je ne suis pas tetu mais borne
le plus simple prendre le format tiff au telechargement de bnf
et creer son propre pdf

qui lui est quand meme plus simple au niveau structure du pdf


ps les litteraires ne devraient pas faire d'informatique ouh la cela
sent le troll

ftp://ftp.bnf.fr/010/N0103019_TIFF_1_122.tif



import com.lowagie.text.*;
import com.lowagie.text.pdf.*;
import java.io.*;
import java.util.*;
import com.lowagie.text.pdf.codec.*;


public class read_tiffs {

public static void main(String[] args) {
String path=args[0];//c:windowsbureau
String Nameout=new String("c:test.pdf");
System.out.println(path);
Document document = new Document(PageSize.A4, 50, 50, 50, 50);
try {
PdfWriter writer = PdfWriter.getInstance(document, new
FileOutputStream(Nameout));
int pages = 0;
document.open();

PdfContentByte cb = writer.getDirectContent();
ArrayList tif = new ArrayList();
getAllTiffs(new File(path), tif);
for (int k = 0; k < tif.size(); ++k) {
RandomAccessFileOrArray ra = null;
String s = (String)tif.get(k);
int comps = 0;
System.out.println(s);
try {
ra = new RandomAccessFileOrArray(s);
comps = TiffImage.getNumberOfPages(ra);
}
catch (Throwable e) {
System.out.println("Exception in " + s + " " +
e.getMessage());
continue;
}
System.out.println("Processing " + s);
for (int c = 0; c < comps; ++c) {
try {
Image img = TiffImage.getTiffImage(ra, c + 1);
if (img != null) {
System.out.println("OK " + s + " page " +
(c + 1));
if (img.scaledWidth() > 500 ||
img.scaledHeight() > 700)
img.scaleToFit(500, 700);
img.setAbsolutePosition(20, 20);
document.add(new Paragraph(s + " - page " +
(c + 1)));
cb.addImage(img);
document.newPage();
++pages;
}
}
catch (Throwable e) {
System.out.println("Exception " + s + " page "
+ (c + 1) + " " + e.getMessage());
}
}
ra.close();
}
if (pages == 0)
document.add(new Paragraph("No pages."));
document.close();
}
catch (Throwable e) {
e.printStackTrace();
}
System.out.println("Done.");

}

public static void getAllTiffs(File dir, ArrayList tif) {
System.out.println(tif);
if (dir.isDirectory()) {
String[] children = dir.list();
if (children == null)
return;
for (int i=0; i<children.length; i++) {
getAllTiffs(new File(dir, children[i]), tif);
}
}
else if (dir.getPath().toLowerCase().endsWith(".tif") ||
dir.getPath().toLowerCase().endsWith(".tiff")) {

tif.add(dir.getPath());
}
}
}

--
des conneries j'en ai dites oui oui je vous assure...
mais elles n'engagent que votre perception
remy

Avatar
remy
qui lui est quand meme plus simple au niveau structure du pdf


apres verif meme pas :-(
encore un troll qui tombe a l'eau

--
des conneries j'en ai dites oui oui je vous assure...
mais elles n'engagent que votre perception
remy

Avatar
Manuel Leclerc
encore un troll qui tombe a l'eau


http://www.mozilla.org/security/#Security_Alerts

<QUOTE>
Security Advisory (September 21, 2005) The Mozilla Foundation is
aware of the Linux.RST.b virus that infected Linux Korean
contributed versions of Mozilla Suite 1.7.6 and Thunderbird
1.0.2, as reported by Kaspersky Lab. No versions of Mozilla
Firefox were infected. Infected files have been removed from
the Mozilla ftp mirror network as of September 17.

Mozilla recommends to our Korean users who have downloaded
affected products to run an AntiVirus product on their machine
to scan for the Linux.RST.b virus and delete infected files.
Further information about the Linux.RST.b virus can be found here:
http://us.mcafee.com/virusInfo/default.asp?idÞscription&virus_k™978
</QUOTE>

--
J'ai envoyé un mail à GPL-violations, le code source
du virus n'est pas librement consultable !
--lezardbreton

Avatar
Benjamin FRANCOIS
Manuel Leclerc s'est exprimé en ces termes:
Mozilla recommends to our Korean users who have downloaded
affected products to run an AntiVirus product on their machine
to scan for the Linux.RST.b virus and delete infected files.
Further information about the Linux.RST.b virus can be found here:
http://us.mcafee.com/virusInfo/default.asp?idÞscription&virus_k™978


En même temps, y'a que les boulets pour proclamer qu'il n'y a aucun
virus sous Linux. Ils sont pour l'instant moins fréquents qu'ailleurs,
mais il y en a, oui, et ça n'est pas nouveau.


--
<Knghtbrd> learn to love Window Maker.
<Knghtbrd> a little NeXTStep is good for the soul.

Avatar
Manuel Leclerc

En même temps, y'a que les boulets pour proclamer qu'il
n'y a aucun virus sous Linux. Ils sont pour l'instant
moins fréquents qu'ailleurs, mais il y en a, oui, et ça
n'est pas nouveau.


La question n'est pas là. Quand la news est sortie sur
slashdot, tout le monde a dit en gros "on s'en tape, ce
n'est pas un site officiel de la fondation".

Ce que je constate c'est que la fondation est très
chatouilleuse sur l'utilisation de sa trademark, que
le site en question l'utilise abondamment (voir :
http://www.mozilla.or.kr/ avec une charte graphique
copie conforme des sites officiels) et que l'advisory
parle de "Korean contributed versions" et de
"affected products" comme s'il s'agissait de versions
officielles. D'ailleurs, y-a-t-il une AUTRE version
de Moz en coréen ???

Donc le troll "sécurité des logiciels gratuits maintenus
et distribués par des bénévolos-charlots" bouge encore.

--
Due to its recent bankruptcy, we are removing this stock from
our recommended buy list.
--rumblin'rabbit's sig

1 2