» »

program za pomoč pri tiskanju 200+pdf dokumentov

program za pomoč pri tiskanju 200+pdf dokumentov

borisk ::

Zdravo!

Srečujem se s problemom, kako sprintat 200+ dokumentov. problem ni v tem da ne moreš naenkrat dat natisnih več kot 15 dokumnetov na enkrat ker sem to v registru rešil, problem je ker je v mapi 500 pdfjev, od katerih bi želel sprintati 200 kom ki jih imam na seznamu v exelu.

Da bi pohitril proces, iščem program, ki bi mi presortiral načrte v dve mapi ali pa da bi program zral sprintat datoteke ki jih imam na seznamu? kakšnen predlog?

lp, boris

Invictus ::

Prvi zadetek na Googlu...

https://gregcaporale.wordpress.com/2012...

Napiši skripto :D.
"Life is hard; it's even harder when you're stupid."

http://goo.gl/2YuS2x

imagodei ::

Takisto prvi zadetek na googlu: https://stackoverflow.com/questions/367...
- Hoc est qui sumus -

Isotropic ::

združi jih (combine), če imaš kakšen program za to (oz. sam sprogramiraj s kakšnim API) in daj printat vse skupaj.

Zgodovina sprememb…

Bellzmet ::

Če bi šel "ročno" printat namesto na forum in Google bi bil zdele že vsaj na polovici :)

borisk ::

nism programer, mi je jasno kako bi izgledal algoritem, ne vem pa kako to sptravit v en BAT spravit da bo to delal

BAT mora narediti:
ustvarit novo mapo v mapi, v kateri bo ta bat zagnan z imenom
za vsako datoteko preverit, če je njeno ime na seznamu "seznam za print.txt" ali "seznam za print.xls"
če je "print"
če ne poglej nasledno.

@ISO in bellzmet, Lahko označim vse in sprintam, potem pa imam 200 listov preveč in jih moram a roke ven sortirat... se mi pa zadeva ponavlja, in gre vedno po enakem principu...

smacker ::

Lahko plačaš programerju 1 uro pa ti bo naredil skripto namesto tebe ;)

Bellzmet ::

Ja itak, če se ponavlja je pa drugače.

styrian ::

50€

mzakelj ::

https://www.naps2.com/

Samo namečeš not pdf-e , in shraniš kot enega in daš print. Enostavno in preverjeno.

borisk ::

ja, bom očitno poklical programerja in mu pojasnil

@žakelj ni si prebral prvega sporočila? ni mi problem sprintat 500pdfjev z dvema klikoma, problem je v mapi kjer je 1000pdfjev sprintat 200 pdfjev, katere imam v elektronskem sezmanu. poimenovani so pa v stilu 300-xxxxx do 300-yyyyy.

imagodei ::

Isotropic ti je tud dal dober nasvet. Mislim, da ti PDF Creator (PDF Architect) omogoča združevanje obstoječih PDF-jev v enega. Pač poklikaš, kaj naj združi in to daš printat kot en ogromen PDF dokument.
- Hoc est qui sumus -

Randomness ::

Tole shrani v kopiraj.bat datoteko. V seznam.txt pa daj spisek datotek, ki jih želiš naprintati. Skripta kopiraj.bat bo vse datoteke, ki so hkrati na seznamu in v trenutni mapi, skopirala v podmapo natisni. Uporaba na lastno odgovornost! (Imej backup datotek)
@ECHO OFF

IF NOT EXIST natisni\NUL (
    MKDIR natisni
)

FOR /F %%G IN (seznam.txt) DO (
    IF EXIST %%G (
        @COPY %%G natisni > NUL
    )
)


Edit: MOVE zamenjal s COPY

Zgodovina sprememb…

GupeM ::

Randomness je izjavil:

Tole shrani v premakni.bat datoteko. V seznam.txt pa daj spisek datotek, ki jih želiš naprintati. Skripta premakni.bat bo vse datoteke iz trenutne mape premaknila v podmapo natisni. Uporaba na lastno odgovornost! (Imej backup datotek)
@ECHO OFF

IF NOT EXIST natisni\NUL (
MKDIR natisni
)

FOR /F %%G IN (seznam.txt) DO (
IF EXIST %%G (
@MOVE %%G natisni > NUL
)
)

Mogoče bi bil copy bolj varen, kot move. Na koncu pa lahko izprazniš direktorij natisni, če je problem plac na disku. Poleg tega imaš ob ponovni uporabi vedno prazno mapo na disku, tako da nimaš problemov s starimi fajli, ki niso za sprintat ali pa imajo enako ime.

borisk ::

hvala za usmeritev, sem probal in ugotovil da moram preverjati samo prvih devet znakov v imenu datotek, saj imam na seznamu v stilu x00-xxxxx dejansko pa imam datoteke x00-xxxxx.idw.pdf

sedaj gledam po temle vodiču in še nisem našel komande za to ampak še enkrat hvala
http://steve-jansen.github.io/guides/wi...

lp, Boris

Randomness ::

@ECHO OFF

SETLOCAL ENABLEDELAYEDEXPANSION

IF NOT EXIST natisni\NUL (
    MKDIR natisni
)

FOR /F %%G IN (seznam.txt) DO (
    SET datoteka="%%G.idw.pdf"
    IF EXIST !datoteka! (
        @COPY !datoteka! natisni > NUL
    ) ELSE (
        ECHO Datoteka !datoteka! manjka
    )
)

Zgodovina sprememb…

bobby ::

Ali brez scripte.
Nastavis default printer
V gonilniku nastavis, da se tiska enostransko, cb, barni, obojestransko,... In skranis kot default settings
Potem pa izberes pdf-e, jih markitas in desni klik, dropdown menu, print

Aja, sorry, mali narobe sem prebral OP post. Odstopam od predloga :)
Ce eksplicitno ne odgovorim osebam PNG ali PR,..I dont care about your opinion.

Zgodovina sprememb…

  • spremenil: bobby ()

b3D_950 ::

za merge pdfjev

https://pdfsam.org/
Zdaj ko je mir, jemo samo krompir.

_Denny_ ::

Napol ročni način z manj kot 5 min dela, če ti ni uspelo s skriptami:

1. Skopiraj vse pdf-je v drugo mapo
2. V Excelu odpri nov spreadsheet in:
- v stolpca B in D skopiraj obstoječ seznam 200 pdf-jev
- v stolpec A s pomočjo autofilla 200x rename
- v stolpec C s pomočjo autofilla 200x xyz oz. drugo kombinacijo, ki se ne pojavlja v imenih pdf-jev
3. Rezultat, ki izgleda podobno temu shrani kot csv (ignoriraj tečnarjenje Excela, da je xlsx boljši)
4. Csv file odpri v Notepadu in:
- Edit -> Replace -> Find what: xyz; Replace with: _ -> Replace All (rezultat)
- Edit -> Replace -> Find what: ; Replace with: presledek -> Replace All (rezultat)
5. Zadevo shrani, ji spremeni končnico iz csv v bat, jo premakni v mapo s skopiranimi pdf-ji in zaženi

Potem samo mapo sortiraš po imenu in tistih 200 pdf-jev bo na vrhu.
Asrock X670E Taichi, Ryzen 9 7950X3D + NH-D14, 96GB Corsair DDR5-6400 CL32
RTX 2070S 8GB, 2TB Kingston KC3000, 2TB ADATA SX8200 Pro, 4TB Micron 5200
Seasonic Focus Plus 850W, Corsair Air 540, Logitech Z-2300, Samsung UE65H6400

HotBurek ::

Sem si rekel, da naredim sample v Pythonu 3.5, po možnosti one-liner. In je uspelo. Vključno z uporabo podpičji na koncu stavkov.


Tako, da če gre namesto BAT namestit Python interpreter, lahko spodnjo skripto uporabiš za kopiranje pdf-jev v drug folder.

- filter.txt morajo biti imena fajlov (100-12345), vsak v svoji vrstici
- lengthindex je za preverjanje prvih x znakov imena

#!/usr/bin/python3.5

# import
import os;
import time;
import shutil;
import traceback;

# path
pdfdir = "/home/user1/Documents/pdf";
pdfout = "/home/user1/Documents/pdf/out";
txtfile = "/home/user1/Documents/pdf/filter.txt";

# lengthindex i.e string[0:x] to comapre to filename
lengthindex = 9;

# delay
delaybig = 1; # delay big
delaysmall = 0.2; #  delay small

# write txtfile input to output
showtxtfilter = True;

# counter
counttxt = 0;
countfiles =0;
countcopy = 0;

# define color string
clr_darkgray = "\033[90m";
clr_red = "\033[91m";
clr_green = "\033[92m";
clr_yellow = "\033[93m";
clr_blue = "\033[94m";
clr_magenta = "\033[95m";
clr_azure = "\033[96m";
clr_lightgray = "\033[97m";
clr_eoc = "\033[0m";

try:

    print("");

    print(clr_yellow + "Hello my master." + clr_eoc);
    print(clr_blue + "This is fakin PDF printer super mage tripple duper 99.999 version." + clr_eoc)
    print(clr_red + "Let's check if dirs and filter file exist..." + clr_eoc);
    print("");

    time.sleep(delaybig);

    pd = False;
    pu = False;
    tf = False;

    if not os.path.exists(pdfdir):
        print(clr_magenta + "Path " + str(pdfdir) + " does not exist." + clr_eoc);
    else:
        pd = True;

    if not os.path.exists(pdfout):
        print(clr_magenta + "Path " + str(pdfout) + " does not exist."+ clr_eoc);
    else:
        pu = True;

    if not os.path.exists(txtfile):
        print(clr_magenta + "File " + str(txtfile) + " does not exist." + clr_eoc);
    else:
        tf = True;

    if pd and pu and tf:
        print(clr_yellow + "Looks all good" + clr_eoc);
        print(clr_green + "Let's continue ..." + clr_eoc);
        print("");

        movepdfs = [];

        file = open(txtfile);
        for item in file.read().split("\n"):
            if len(item) > 0:
                movepdfs.append(item);
                counttxt = int(counttxt) + 1;
        file.close();

        if showtxtfilter:

            print(clr_blue + "List of file names to search for:" + clr_eoc);
            for movepdf in movepdfs:
                print(clr_green + str(movepdf) + clr_eoc);
                time.sleep(delaysmall);
            print("");

        for item in os.listdir(pdfdir):

            if os.path.isfile(pdfdir + "/" + item):

                countfiles = int(countfiles) + 1;

                for movepdf in movepdfs:

                    if movepdf == item[0:lengthindex]:

                        print("This " + clr_green + str(movepdf) + clr_eoc + " match to " + clr_blue + str(item) + clr_eoc);

                        print(" Copy " + clr_yellow + str(item) + clr_eoc);

                        shutil.copy(pdfdir + "/" + item, pdfout + "/" + item);

                        countcopy = int(countcopy) + 1;

                        print("");

                        time.sleep(delaybig);

        print(clr_green + "How about some counters, eh?" + clr_eoc);

        print("");
        print(clr_azure + "." + clr_eoc);
        print(clr_azure + ". ." + clr_eoc);
        print(clr_azure + ". . ." + clr_eoc);
        print("");

        print(clr_azure + "counttxt=" + clr_eoc + clr_green + str(counttxt) + clr_eoc);
        print(clr_azure + "countfiles=" + clr_eoc + clr_blue + str(countfiles) + clr_eoc);
        print(clr_azure + "countcopy=" + clr_eoc + clr_magenta + str(countcopy) + clr_eoc);

        print("");
        print(clr_azure + ". . ." + clr_eoc);
        print(clr_azure + ". ." + clr_eoc);
        print(clr_azure + "." + clr_eoc);
        print("");

        print(clr_azure + "That's it. Gut luck with printing..." + clr_eoc);
        print("");

    else:
        print(clr_azure + "Nope, something isn't okey" + clr_eoc);

except Exception as exc:

    error = traceback.format_exc();
    print(error);



 pdf-searcher

pdf-searcher

root@debian:/# iptraf-ng
fatal: This program requires a screen size of at least 80 columns by 24 lines
Please resize your window

Zgodovina sprememb…

  • spremenil: bluefish ()

borisk ::

Randomness je izjavil:

@ECHO OFF

SETLOCAL ENABLEDELAYEDEXPANSION

IF NOT EXIST natisni\NUL (
MKDIR natisni
)

FOR /F %%G IN (seznam.txt) DO (
SET datoteka="%%G.idw.pdf"
IF EXIST !datoteka! (
@COPY !datoteka! natisni > NUL
) ELSE (
ECHO Datoteka !datoteka! manjka
)
)


Zdravo!

Zadeva deluje, večina je že sprintana, res pa se čez vikend nisem oglasil.

sem pa opazil da imam nekaj nekaj datotek z revizijo, kar pomeni da imajo ime 000-00000.idw_x.pdf med tem ko imajo ostali tako kot je bilo zgoraj in na njih je delovalo.

lahko v tvojo kodo vstavil nekaj kar v tisti maski za ime vsebuje možen wildcard (če sem prav razumel je v widovs skriptah to vprašaj?

SET datoteka="%%G.idw??.pdf"

Randomness ::

@ECHO OFF

SETLOCAL ENABLEDELAYEDEXPANSION

IF NOT EXIST natisni\NUL (
    MKDIR natisni
)

FOR /F %%G IN (seznam.txt) DO (
    SET pattern="%%G.idw??.pdf"
    SET /A count=0
    FOR /F %%F IN ('DIR /B !pattern! 2^> NUL') DO (
        @COPY %%F natisni > NUL
        SET /A count+=1
    )
    IF !count! EQU 0 (
        @ECHO Nobena datoteka ne ustreza vzorcu !pattern!
    )
)

ENDLOCAL

Zgodovina sprememb…

Randomness ::

Še malo drugače:
@ECHO OFF

SETLOCAL ENABLEDELAYEDEXPANSION

IF NOT EXIST natisni\NUL (
    MKDIR natisni
)

FOR /F %%G IN (seznam.txt) DO (
    SET pattern="%%G.idw??.pdf"
    FOR /F %%I IN ('DIR /B !pattern! 2^> NUL ^| FIND /C "."') DO SET count=%%I
    IF !count! GTR 0 (
        COPY !pattern! natisni > NUL
    ) ELSE (
        @ECHO Nobena datoteka ne ustreza vzorcu !pattern!
    )
)

ENDLOCAL

borisk ::

Hvala, Randomness

zadeva deluje!!

Lahko še kdo kaj priporoča glede gradiva glede BAT skript.

imagodei ::

Hm, zakaj bi človek uporabljal BAT/CMD skripto dolžine 20 vrstic, če lahko namesto tega uporabi Python skripto v dolžini 140 vrstic ;)
- Hoc est qui sumus -

HotBurek ::

Deset lajner :)


#!/usr/bin/python3.5
import os; import shutil; path = "/home/user1/Documents/pdf";
if not os.path.exists(path + "/out"): os.makedirs(path + "/out");
for object in os.listdir(path):
    if os.path.isfile(path + "/" + object):
        file = open(path + "/filter.txt", "r");
        for searchterm in file.read().split("\n"):
            if searchterm == object[0:9] and len(searchterm) > 0:
                shutil.copy(path + "/" + object, path + "/out"); print(str(object)); break;
        file.close();
root@debian:/# iptraf-ng
fatal: This program requires a screen size of at least 80 columns by 24 lines
Please resize your window


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

batch skripta požene prevečkrat

Oddelek: Programiranje
171932 (767) krneki0001
»

Fake traffic generator

Oddelek: Omrežja in internet
192055 (1251) HotBurek
»

[Win Batch] Skripta za ustvarjanje datoteke

Oddelek: Programiranje
51026 (830) sas084
»

batch fajl iz txt (strani: 1 2 )

Oddelek: Programiranje
658843 (7504) b3D_950
»

Znakovni LCD zaslon

Oddelek: Elektrotehnika in elektronika
183273 (2034) roli

Več podobnih tem