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

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).

Investigarea unor fişiere PDF

PDF
2013 jul

Iniţial, avem fişiere PDF cu seturi de subiecte de bacalaureat, descărcate de pe diverse site-uri de tip "furnizor de documente" (google bac variante matematica 2009); putem vedea că aceste PDF-uri sau provin din documente Microsoft Word, sau sunt rezultatul scanării de pagini tipărite - aşa că recuperarea inversă (a "formulelor matematice" ale căror "poze" apar pe ecran) aproape că nu are nici o şansă.

Aceasta înseamnă că este inevitabilă această muncă: citeşte textul problemei din PDF şi scrie-l în format text uzual (folosind pentru expresiile matematice limbajul LaTeX); când termini de scris astfel toate cele 10 probleme din acea variantă - salvează textul în baza de date a site-ului utilitar //bacmath.


Prev
Next
ALL (386 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: