momente şi schiţe de informatică şi matematică
To attain knowledge, write. To attain wisdom, rewrite.

Reducerea la regiunea vizibilă şi "împăturirea" unor pagini PDF

PDF | Python
2013 aug

Avem 300 de fişiere PDF de câte o pagină "A4"; câte 100 dintre ele reprezintă subiectul I, II şi respectiv III ale variantelor de subiecte de bacalaureat "MT1_2009".

Pentru fiecare variantă 1..100, accesăm cele trei fişiere aferente ei, reducem paginile de la formatul "A4" la regiunea vizibilă şi creem un fişier PDF care "împătureşte" cele trei pagini tocmai reduse; datorită reducerii pe verticală, vizualizatorul va arăta aceste trei pagini aproape la fel ca în cazul uneia singure.
Folosim pentru aceasta Ghostscript (implicat într-un script Bash) şi modulul Python pyPdf.

Modificarea unor pagini PDF, folosind python-pyPdf

PDF | Python
2013 aug

Modulul pyPdf defineşte în Python obiectele specifice formatului PDF şi pe baza acestora, instituie două obiecte principale - unul care permite parcurgerea unui fişier PDF, analizând şi interpretând conţinutul acestuia şi constituind obiectele Python corespunzătoare şi unul "invers": datele curente din obiectele Python se "traduc" şi se scriu rând pe rând ca obiecte PDF într-un fişier, menţinând pe parcurs o listă a offset-urilor la care au ajuns să fie aşezate obiectele respective - această listă servind pentru a adăuga la sfârşitul fişierului structurile tipice PDF xref şi trailer.

Investigăm paginile PDF iniţiale şi "scăpăm" de elementele inutile, folosind Python şi obiectele din pyPdf.

Depistarea şi eliminarea unor obiecte PDF, folosind comenzi din patrimoniul Linux-ului şi modulul pyPdf

Linux | PDF | Python
2013 aug

De la www.variantebacalaureat.com am obţinut trei fişiere PDF conţinând respectiv "Subiectul I", II şi III pentru cele 100 de variante de subiecte de bacalaureat la proba "matematică".

Ne interesează numai enunţurile subiectelor, încât vrem să "scăpăm" de elementele suplimentare. Dar de data aceasta, elementele "inutile" nu se rezumă la antet, notă de subsol şi punctaje "5p"; fiecare pagină din cele trei fişiere PDF iniţiale conţine în plus, "adnotări" şi un soi de "filigrane".

Cu instrumente de investigare obişnuite: head, tail, xxd - depistăm în fişier obiectele PDF care determină redarea elementelor menţionate; apoi reuşim să eliminăm unele dintre ele, operând cu pyPdf.

Trei pagini PDF în una, folosind Python

PDF | Python
2013 jul

Elemente de "format PDF". Prelucrări de fişiere PDF folosind modulul Python pyPdf şi scriptul Perl pdfcrop.

Avem 300 de fişiere PDF - câte unul pentru fiecare "variantă" şi "subiect", cu elemente inutile (antet identic, notă de subsol, etc.) pe fiecare pagină. Obţinem 100 de fişiere conţinând pe câte o singură pagină (fără elemente inutile vizibile) subiectele respective (pentru fiecare variantă).

Experimente cu PDF-uri, iframe şi Google Drive

Firefox | Google Drive | PDF | jQuery
2013 jul

Stocăm cele 100 de fişiere PDF care vor trebui deschise în <iframe>, pe "Google Drive"-ul propriu, declarându-le ca fiind "publice"; apoi, setând elementul <iframe> ca în acest exemplu:

<iframe src="https://docs.google.com/file/d/0B5Rpn1ZXSEfrTnR5NEQ3Y3dkZTQ/preview"></iframe>

asigurăm că utilizatorul care are cont Google - aproape indiferent de browserul folosit pentru a accesa //bacmath şi pagina care conţine acel <iframe> - va primi "corect" PDF-ul identificat în atributul "src". "Va primi corect" PDF-ul, fiindcă în cazul fişierelor originate din Google Drive, Google implică un vizualizator propriu (analog celui încorporat în Firefox pentru PDF).


Prev
Next
ALL (392 titluri)

vezi Cărţile mele (de programare)

despre acesta ~ Home
(sau https://vlad.bazon.net/

Factoriale | Graficul funcţiilor

PGN browser | chess JS engine

Load

in /slightchess

/slightchess

626 partide analizate cu Crafty

(R) Computer Art | Decoraţiuni

Aplicaţii şcolare (javaScript)

Sinteze: