Drukowanie pliku .pdf za pomoca .bat


(Karlozo) #1

Czy ktoś zna odpowiedź jak w temacie?

Program w którym pracuję daje raport końcowy, który można wydrukować bądź zapisać w .pdf

Problem polega na tym że ja potrzebuje obu opcji, wydrukowanie na lokalnej drukarce i zapisanie kopii na serwerze

Za pomocą programu jest możliwość uruchomienia pliku .bat


(bobołak) #2

PDFCreator to potrafi.

Popatrz na ten post:

zapisywanie-kopii-wydruku-lpt-pliku-t531019.html


(Karlozo) #3

niestety nie mogę instalować u klienta dodatkowego oprogramowania, ponadto pdfcreator to nic innego jak virtualna drukarka.

Mój program tworzy pdf automatycznie w dowolnej lokalizacji (jak pdfcreator) i drukuje automatycznie, problem w tym że nie może zrobić dwóch rzeczy na raz, albo jedno albo drugie.

Jeżeli zaznaczę drukowanie to mam raport na papierze i nie mam pliku pdf wiec nie mogę dalej obrabiać

Jeżeli zaznaczę drukowanie do pdf to mam raport w pliku w dowolnej lokalizacji tylko jak automatycznie go teraz wydrukować

Podkreślam że w programie mogę umieścić plik .bat, brak dodatkowych narzędzi, mogę dodatkowo zmienić ustawienia drukarki, nic więcej

Dodane 24.07.2013 (Śr) 18:13

Jeżeli ktoś na pewno wie że to niewykonalne w .bat bardzo proszę o taką informację.


(kostek135) #4

Hmm są cztery zasadnicze scenariusze:

  1. Zadawalający, ekstremalnie nieprawdopodobny

    C:\Users***>help print

    Prints a text file.

    PRINT [/D] [[drive][path]filename[…]]

    /D:device Specifies a print device.
    

    C:\Users***>

Może jakimś cudem drukarka zrozumie, że to co jej podałeś jest pdf-em. Być może droższe modele mają coś takiego, mało prawdopodobne, skończy się na 97% krzakami (pdf zostanie zinterpretowany jako txt). Możemy testować, ale należy się liczyć z szybkim wyłączeniem drukarki + musimy umieć opróżnić bufor (bo na dobrą sprawę nie wiadomo jak dużo krzaków zostanie wyplutych - a szkoda tuszu).

  1. Realistyczny, łatwy - wymaga doinstalowania dodatkowego softu np. Foxit Reader, w linku poniżej wszystko wyjaśnione

http://www.brooksnet.com/content/how-pr … ws-printer

  1. Mało prawdopodobny, łatwy - twój program (albo nie twój, tylko ty go używasz) posiada jakiś interfejs do komunikacji via cmd (potrzebna dokumentacja do programu). Wtedy można zrobić podobnie jak z Foxit Reader, oczywiście tak jak wymaga protokół komunikacyjny konkretnego programu.

  2. Ostateczny - napisać soft jeśli to Windows prawdopodobnie .Net będzie wspierany, albo Java jeśli jest zainstalowana) i samemu dać komunikację via cmd, wtedy nie musimy się już martwić o to jak wygląda protokół, bo sami o tym decydujemy. Do obu tych języków jest multum bibliotek opakowujących drukowanie pdf.


(Karlozo) #5

Wybieram bramkę nr 4. Program pracuje na Win7 i jest Java6

Do programu mogę dodać własne skrypty ale nie mogę instalować żadnego oprogramowania (chodzi o licencje nawet free)

Niestety ograniczenia mam w możliwości uruchomienia takiego skryptu w programie (tylko .bat), ale znalazłem również opcje w drukarce PDF (Pdf Printer dostarczona z oprogramowaniem, żaden znany program), uruchomienie aplikacji po zapisie (domyślny viwer / wskaż aplikację)

co potrzebuję żeby napisać taki skrypt? Jeśli chodzi o Java to jestem zielony

aktualnie program zapisuje plik do C:\temp\raport.pdf skąd jest kopiowany ze zmienioną nazwą w odpowiednią lokalizację

ewentualnie czy ktoś może pomóc napisać bądź napisać dla mnie aplikację na drukowanie na domyślnej drukarce (różne drukarki na różnych stanowiskach) C:\temp\raport.pdf


(Rolek0) #6

Jak jest zainstalowany Adobe Acrobat Reader to

acrord32 /p /h plik.pdf

Wydrukuje plik.pdf na domyślnej drukarce.


(Karlozo) #7

wielkie dzięki za pomoc to działa

@echo off

start acrobat /p /h plik.pdf

taskkill /im acrobat.exe

w ramach wyjaśnień /p to drukuj ale co oznacza /h ?


(Rolek0) #8

Samo /p wyśiwetla dialog z ustawieniami drukowania, /p /h drukuje na domyślnej drukarce (przynajmniej na mojej wersji Readrea 11.0.0.379).