Jump to content

SUBIECTE NOI
« 1 / 5 »
RSS
Ce tip de monitor am nevoie pt of...

Resoftare camera supraveghere

Cu ce va aparati de cainii agresi...

Nu imi platiti coletul cu cardul ...
 Mi-au disparut amigdalitele ?

Exista vreun plan de terorizare p...

Schimbare adresa DNS IPv4 pe rout...

Recomandare Barebone
 Monede JO 2024

Suprasolicitare sistem electric

CIV auto import

Mutare in MOZAMBIC - pareri, expe...
 Scoatere antifurt airtag de pe ha...

Magnet in loc de clește pent...

Cumparat/Locuit in apartament si ...

Pot folosi sistemul PC pe post de...
 

Help: Automatizare proces de lucru cu PDF-uri

- - - - -
  • Please log in to reply
17 replies to this topic

#1
Ideosaur

Ideosaur

    New Member

  • Grup: Junior Members
  • Posts: 22
  • Înscris: 31.12.2016
Salut, as dori sa va intreb cum pot rezolva situatia descrisa mai jos si ce programe/script-uri/solutii exista. Printre altele mi s-a recomandat PowerShell. Mentionez ca nu am background in programare, altfel spus sunt paralel, pot implementa o solutie descrisa bine pas cu pas in cel mai bun caz.

Situatia:

etapa 1

Eu lucrez cu PDF-uri si as avea nevoie in prima faza de o separare automata a unui fisier PDF care inglobeaza alte fisiere PDF in interiorul sau, dupa titlul lor. De ex, daca fisierul meu principal se numeste WHATEVER.pdf si contine in interior alte 6 documente de cate 2 pagini, fiecare avand titlul "P1" (in aceasta ocazie dar poate fi alt titlu cu o alta ocazie deci ma ajuta doar daca pot reseta/defini acest paramentru mereu) , am nevoie de un proces automatizat prin care se ia fisierul cel mare si este despartit in 6 fisiere mai mici, fiecare incepand cu pagina care contine titlul indicat si sfarsind inainte de titlul paginii celeilalte, deci cum ar veni de la primul "P1" pana la urmatorul "P1"

Cum sunt ele redenumite dupa nu ar conta pt moment.

etapa 2

Imi rezulta 6 fisiere deci. Fiecare contine in interiorul sau un TAG. Acesta este diferit in fiecare fisier dar apare dupa cuvantul WIRE in fiecare dintre fisiere. Exemplu:

in fiecare fisier am:

"text text bla blaaa bla bla WIRE: AAXX22  Bla blaaa text text

blaaa blaaaaa text text"  


Softul de care am nevoie trebuie sa stie sa redenumeasca fiecare dintre cele 6 fisiere cu orice cuvant gaseste dupa cuvantul WIRE din interiorul lor, in cazul nostru as avea 6 fisiere si primul dintre ele ar fi redenumit ca AAXX@@.pdf  iar celelalte in functie de cuvantul care s-ar gasi dupa WIRE in fiecare dintre ele. Cel mai minunat ar fi sa pot indica eu programului sa redenumeasca fisierele in functie de cuvantul imediat urmator cuvantului pe care il dau eu, gen "astazi redenumeste toate fisierele cu primul cuvant pe care il gasesti dupa cuvantul DOG din fiecare fisier, maine redenumeste cu urmatorul cuvant care apare dupa cuvantul CAT in fiecare pdf " dar aici deja intram probabil in SF.

As avea nevoie deci sa am optiunea sa selectez macar un grup de fisiere, fie chiar un grup limitat sa zicem maxim 10 odata, care sa traca prin acest proces.

Sper ca am explicat bine, m-am straduit cel putin sa o fac, acum astept ideile voastre si va multumesc pentru timpul vostru si explicatii.

Toata stima,
Toni

Edited by Ideosaur, 30 March 2017 - 11:17.


#2
lightpoint

lightpoint

    Member

  • Grup: Members
  • Posts: 785
  • Înscris: 16.02.2017
De fapt tu ai nevoie de un software orientat catre client care sa stie sa faca managementul fisierelor pdf conform criteriile de mai sus. Vezi sectiunea , softuri la cerere

#3
Kriogen

Kriogen

    Junior Member

  • Grup: Members
  • Posts: 185
  • Înscris: 23.04.2014
Sa inteleg ca acel pdf nu este creat de tine?

#4
Mihai_3

Mihai_3

    我會回來的...

  • Grup: Senior Members
  • Posts: 10,041
  • Înscris: 26.04.2007
Ideosaur: pentru ceea ce vrei tu trebuie sa contactezi o firma de software

#5
Ideosaur

Ideosaur

    New Member

  • Grup: Junior Members
  • Posts: 22
  • Înscris: 31.12.2016
@Kriogen  nu este creat de mine, il downloadez de pe un server si am de lucru cu el

#6
potae

potae

    Sorosist frumos si liber

  • Grup: Senior Members
  • Posts: 3,429
  • Înscris: 20.08.2013
Iti fac eu 3799 lei fara bon.

#7
Ideosaur

Ideosaur

    New Member

  • Grup: Junior Members
  • Posts: 22
  • Înscris: 31.12.2016
@Mihai_3  da, corect, daca ar fi firma mea si procedura asta mi-ar optimiza timp/ eficienta etc as plati pana la ultimul leu la o firma specializata. Dar nefiind a mea, ma intereseaza la nivel personal, pentru a usura munca mea si a colegilor, la modul pur dezinteresat. Asta fiind intentia, mi-am spus ca atunci cand nu stii, e bine sa intrebi. Da' am uitat intr-adevar sa specific, caut o solutie foarte low cost daca exista, iar daca nu gasesc... voi continua sa imi fac treaba ca si pana acum, insa cu frustrarea ca stiu ca se poate realiza in 10 minute ceea ce fac in 60 de minute :| meh.

 potae, on 30 martie 2017 - 12:05, said:

Iti fac eu 3799 lei fara bon.

Daca era firma mea as fi spus pe loc "da". Da' nu-i ... nu stiu cat voi sta aici, daca voi sta .... daca voi mai avea de-a face cu acest tip de operatiuni... drept urmare incerc sa aflu in mare daca se poate face, cu ce, daca e complicat, adica sa am o idee cel putin despre chestiunea asta care ma intriga si poate daca la un calcul imi rezulta ca merita timpul si efortul, sa stiu ce sa ma pun sa invat

#8
potae

potae

    Sorosist frumos si liber

  • Grup: Senior Members
  • Posts: 3,429
  • Înscris: 20.08.2013
Solutie gratis nu exista. Invata un limbaj de programare si vezi ce librarii sunt gata disponibile.

#9
roxanaRabinowitz

roxanaRabinowitz

    Active Member

  • Grup: Members
  • Posts: 1,414
  • Înscris: 21.02.2016
Tu nu prea ai nevoie de limbaj de programare.
Ma rog, nu exista nici un limbaj care sa faca ce vrei tu din prima, fara alte module/librarii suplimentare.
Ti ai nevoie de ceva care sa caute in PDF un text.
Apoi altceva, sau acelasi, care sa imparta un PDF in mai multe bucati.
Controlul general poti sa-l faci si din BAT (command line, mai simplu decit powershell).
Aici ai pentru cautare: http://soft.rubypdf....windows-version
Pentru impartire, acesta: https://www.pdflabs....s/pdftk-server/
Nota bene: nu am folosit aceste programe, le-al gasit pe gugle.
Mai departe, cautare si procesare toate fisierele dintr-un folder: http://stackoverflow.com/a/138581
Citeste si aici: http://stackoverflow.com/a/138964
Mai e parte aia cu cuvintele cheie, nu am citit cu atentie, dar te descurci.
Daca, totusi, vrei un limbaj mai avansat, eu folosesc AutoIt, similar cu BASIC, foarte foarte simplu.
Gasesti pe forumul lor absolut tot ce vrei.

Edited by roxanaRabinowitz, 30 March 2017 - 13:59.


#10
Ideosaur

Ideosaur

    New Member

  • Grup: Junior Members
  • Posts: 22
  • Înscris: 31.12.2016
@roxanaRabinowitz  iti multumesc mult pentru comentariul tau la obiect. De aici voi citi, voi cauta, ma voi documenta.... asta era ideea. Multumesc inca odata, chiar imi este de ajutor.

#11
afh

afh

    Active Member

  • Grup: Members
  • Posts: 1,836
  • Înscris: 14.04.2005
bagă un pdf să vedem despre ce e vorba. n-ar trebui să fie foarte greu de făcut un script.

Edited by afh, 30 March 2017 - 14:34.


#12
Ideosaur

Ideosaur

    New Member

  • Grup: Junior Members
  • Posts: 22
  • Înscris: 31.12.2016
am construit un exemplu banal aici: https://www.sendspace.com/file/9mxs8a

nu am voie sa trimit fisierele originale din pacate insa e acelasi lucru

#13
afh

afh

    Active Member

  • Grup: Members
  • Posts: 1,836
  • Înscris: 14.04.2005
Deschide pdf-ul, apoi javascript console (crtl+j) și rulează asta. Dacă e ceea ce vrei, se poate automatiza pentru mai multe fișiere
Paginile extrase sunt salvate pe "D:\\"
foundPage = false;
firstPage = 0;
lastPage = 0;
for (var i = 0; i < this.numPages; i++ ) {
numWords = this.getPageNumWords(i);
for (var j = 0; j < numWords; j++) {
if (this.getPageNthWord(i, j) == 'WIRE'){
fileName = 'D:\\' + this.getPageNthWord(i, j+1) + '.pdf';
lastPage = i;
foundPage = true;

break;
}
}

if (foundPage){
console.println('firstPage = ' + firstPage);
console.println('lastPage = ' + lastPage);
console.println(fileName);
this.extractPages (firstPage, lastPage, fileName) ;
foundPage = false;
firstPage = i+1;
lastPage = i+1;
}
}
console.println('Done')


Edited by afh, 30 March 2017 - 15:43.


#14
lightpoint

lightpoint

    Member

  • Grup: Members
  • Posts: 785
  • Înscris: 16.02.2017

 Ideosaur, on 30 martie 2017 - 12:04, said:

@Kriogen  nu este creat de mine, il downloadez de pe un server si am de lucru cu el
Ce vrei tu se poate face printr-o aplicatie de gen consola care primeste ca argumente doua variabile , calea de destinatie si un vector cu token-urile de spliting
adica ceva in genul: splipdf --path C:\mysplits, --wirelist AAxx-22C, BBxx-33CD, BBxx-33CD,.... , NA3x-2DC si sa-ti creeze N pdf-uri fiecare cu AAxx-22C.pdf si tot asa.
Am facut un tool de genul asta mai demult dar era pe XML-uri. Si ii serveam toolului parametrii noi printr-un script de bash.
Sorry nu pot sa te ajut acum. NDA activ.Adica tot ce lucrez si in particular apartine firmei, pana si ideile mele apartin firmei.Ata ete.

#15
Ideosaur

Ideosaur

    New Member

  • Grup: Junior Members
  • Posts: 22
  • Înscris: 31.12.2016
rezolvat cu un prieten, 14 linii de comanda in Power Shell, 30 minute de lucru. Multumesc tuturor !

Edited by Ideosaur, 31 March 2017 - 10:22.


#16
Ideosaur

Ideosaur

    New Member

  • Grup: Junior Members
  • Posts: 22
  • Înscris: 31.12.2016

 afh, on 30 martie 2017 - 15:42, said:

Deschide pdf-ul, apoi javascript console (crtl+j) și rulează asta. Dacă e ceea ce vrei, se poate automatiza pentru mai multe fișiere
Paginile extrase sunt salvate pe "D:\\"
foundPage = false;
firstPage = 0;
lastPage = 0;
for (var i = 0; i < this.numPages; i++ ) {
numWords = this.getPageNumWords(i);
for (var j = 0; j < numWords; j++) {
if (this.getPageNthWord(i, j) == 'WIRE'){
fileName = 'D:\\' + this.getPageNthWord(i, j+1) + '.pdf';
lastPage = i;
foundPage = true;

break;
}
}

if (foundPage){
console.println('firstPage = ' + firstPage);
console.println('lastPage = ' + lastPage);
console.println(fileName);
this.extractPages (firstPage, lastPage, fileName) ;
foundPage = false;
firstPage = i+1;
lastPage = i+1;
}
}
console.println('Done')


@afh  Am rezolvat cu Power Shell, am avut noroc cu un prieten care stia ce trebuie facut si functioneaza de minune, dar e imposibil sa trec pe aici fara sa iti multumesc pentru timpul si ajutorul acordat!

Edited by Ideosaur, 31 March 2017 - 15:45.


#17
afh

afh

    Active Member

  • Grup: Members
  • Posts: 1,836
  • Înscris: 14.04.2005

 Ideosaur, on 31 martie 2017 - 15:44, said:

@afh  Am rezolvat cu Power Shell, am avut noroc cu un prieten care stia ce trebuie facut si functioneaza de minune, dar e imposibil sa trec pe aici fara sa iti multumesc pentru timpul si ajutorul acordat!
stai liniştit că oricum am văzut mai târziu că scriptul meu e greşit  :))

#18
dani.user

dani.user

    Guru Member

  • Grup: Senior Members
  • Posts: 30,236
  • Înscris: 24.02.2007

 Ideosaur, on 31 martie 2017 - 10:22, said:

rezolvat cu un prieten, 14 linii de comanda in Power Shell, 30 minute de lucru. Multumesc tuturor !

Daca-s doar 14 linii de PowerShell, poate-l faci cadou si altora aici.

Anunturi

Second Opinion Second Opinion

Folosind serviciul second opinion ne puteți trimite RMN-uri, CT -uri, angiografii, fișiere .pdf, documente medicale.

Astfel vă vom putea da o opinie neurochirurgicală, fără ca aceasta să poată înlocui un consult de specialitate. Răspunsurile vor fi date prin e-mail în cel mai scurt timp posibil (de obicei în mai putin de 24 de ore, dar nu mai mult de 48 de ore). Second opinion – Neurohope este un serviciu gratuit.

www.neurohope.ro

0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users

Forumul Softpedia foloseste "cookies" pentru a imbunatati experienta utilizatorilor Accept
Pentru detalii si optiuni legate de cookies si datele personale, consultati Politica de utilizare cookies si Politica de confidentialitate