Created
April 29, 2011 16:35
-
-
Save dizzi/948588 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package cz.dizzi | |
import com.itextpdf.text.pdf.PRTokeniser | |
import com.itextpdf.text.pdf.PdfName | |
import com.itextpdf.text.pdf.PdfReader | |
import com.itextpdf.text.pdf.parser.ImageRenderInfo | |
import com.itextpdf.text.pdf.parser.PdfImageObject | |
import com.itextpdf.text.pdf.parser.PdfReaderContentParser | |
import com.itextpdf.text.pdf.parser.RenderListener | |
import com.itextpdf.text.pdf.parser.TextRenderInfo | |
import java.awt.image.BufferedImage | |
import javax.imageio.ImageIO | |
class PDF2Text { | |
public static void main(String[] args) { | |
PdfReader reader = new PdfReader("d:\\autoskola\\vestnik20110426.pdf"); | |
def pages = reader.getNumberOfPages() | |
println "Pages: " + pages | |
PdfReaderContentParser parser = new PdfReaderContentParser(reader); | |
for (i in 3..pages) { | |
print "." | |
if(((i-2)%20)==0) | |
println "" | |
parser.processContent(i, new RenderListener(){ | |
def textFile | |
{ | |
this.textFile = new File("D:\\autoskola\\text.txt") | |
} | |
public void beginTextBlock() { } | |
public void endTextBlock() { } | |
public void renderImage(ImageRenderInfo renderInfo) { | |
def imgPlaceholder = "<Image>-"+renderInfo.getRef().getNumber() | |
//println imgPlaceholder | |
this.textFile.append(imgPlaceholder+"\n") | |
saveJPG(renderInfo, "D:\\autoskola\\img%s.%s") | |
} | |
public void renderText(TextRenderInfo renderInfo) { | |
def text = renderInfo.getText() | |
if(text ==~ /\d{1,2}\.\d{1,2}\.\d{4}/) // remove dates | |
return | |
if(text ==~ /\d{1,3}/) // remove page number | |
return | |
if(text ==~ /V.stn.k dopravy/) //remove header/footer | |
return | |
if(text ==~ /Zkou.ka z p.edpis. o provozu na pozemn.ch komunikac.ch a zdravotnick. p..pravy/) //remove header/footer | |
return | |
if(text ==~ /Zkou.ka profesn. zp.sobilosti/) //remove header/footer | |
return | |
if(text ==~ /P..loha/) //remove header/footer | |
return | |
if(text ==~ /\d{8}/) // new line before new question | |
text="\n"+text | |
//println text | |
this.textFile.append(text+"\n") | |
} | |
public void saveJPG(renderInfo, path){ | |
String filename; | |
FileOutputStream os; | |
PdfImageObject image = renderInfo.getImage(); | |
PdfName filter = (PdfName)image.get(PdfName.FILTER); | |
if (PdfName.DCTDECODE.equals(filter)) { | |
filename = String.format(path, renderInfo.getRef().getNumber(), "jpg"); | |
os = new FileOutputStream(filename); | |
os.write(image.getStreamBytes()); | |
os.flush(); | |
os.close(); | |
} else { | |
BufferedImage awtimage = renderInfo.getImage().getBufferedImage(); | |
if (awtimage != null) { | |
filename = String.format(path, renderInfo.getRef().getNumber(), "png"); | |
ImageIO.write(awtimage, "png", new FileOutputStream(filename)); | |
} | |
} | |
} | |
}); | |
} | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
10110045 | |
Na této křižovatce | |
<Image>-835 | |
a) je přednost v jízdě upravena svislými dopravními značkami. | |
b) není přednost v jízdě upravena svislými dopravními značkami. | |
c) má přednost v jízdě vozidlo z výhledu. | |
06050556 | |
Lhůta pro přistavení silničního vozidla k pravidelnému měření emisí se počítá ode dne: | |
a) Prodeje vozidla a potom vždy ode dne provedení pravidelného měření emisí zapsaného v osvědčení o | |
měření emisí. | |
b) Prvního zaregistrování vozidla a potom vždy ode dne provedení pravidelného měření emisí zapsaného | |
v osvědčení o měření emisí. | |
c) Vyrobení vozidla a potom vždy v pravidelných pětiletých lhůtách. | |
06060086 | |
Zjistíme-li závady na brzdovém systému, které zjevně znemožňují účinně zastavit vozidlo a tím | |
ohrožují bezpečnost provozu na pozemních komunikacích: | |
a) Vozidlo lze provozovat na pozemních komunikacích na základě jednorázového povolení policie. | |
b) S vozidlem lze přiměřenou rychlostí dojet jen do nejbližšího místa, kde lze závadu odstranit. | |
c) Vozidlo nesmí být užito k provozu na pozemních komunikacích, smí však být vlečeno na tyči. | |
06060087 | |
Lhůta pro přistavení silničního vozidla k pravidelné technické prohlídce se počítá ode dne: | |
a) Prvního zaregistrování silničního vozidla a potom vždy ode dne provedení pravidelné technické | |
prohlídky. | |
b) Prodeje silničního vozidla a potom vždy ode dne úspěšného provedení pravidelné technické prohlídky. | |
c) Vyrobení silničního vozidla a potom vždy v pravidelných pětiletých lhůtách. |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment