Tips: stampare PDF in windows *da Java*

Come promesso, adesso vi mostrerò un metodo per aggirare il problema di stampare file PDF da java in windows (sempre che non abbiate una stampante che accetta direttamente i PDF, nel qual caso questo post non vi serve).
Come potete notare nel titolo ho messo in evidenza “da Java”, infatti tecnicamente non sarà più Java a stampare il pdf ma AcrobatReader. Quello che vi mostrerò è un modo per avviare AcrobatReader e lanciarne la funzionalità di stampa all’interno di un programma Java.

Prima di tutto sfrutteremo le opzioni di avvio che accetta AcrobatReader:

  • /n: serve per lanciare una nuova istanza di AcrobatReader
  • /h: serve per aprire AcrobatReader in una finestra ridotta ad icona
  • /p: serve per mostrare subito la finestra di stampa

Tramite queste opzioni è quindi possibile aprire AcrobatReader per stampare i nostri PDF.
Ma vediamo come farlo da Java:

Process print;
if(print != null)
print.destroy();
print = Runtime.getRuntime().exec("Path2AcrobatReader/AcroRd32.exe /n /s /p " + "nomefile");

ed il gioco è fatto!
(l’IF serve per uccidere una eventuale istanza precedente di AcrobatReader)

EOF

Saa7134-alsa: inviare l’audio al PC senza “cavo-ponte”

In questo (probabilmente) ultimo post sulla scheda TV PCMCIA che ho recentemente acquistato, mostrerò come redirigere l’audio direttamente alle casse del vostro pc, senza l’ausilio di cavi esterni di collegamento tra l’uscita della scheda TV ed il microfono/line-in della scheda audio.

NB: questo metodo serve solamente per il ricevitore analogico, mentre per il dvb-t il problema non si presenta

Per far questo utilizzeremo il modulo saa7134-alsa che nel primo post sull’argomento vi avevo detto di compilare nel kernel.
Prima di tutto quindi, carichiamo questo modulo:

modprobe saa7134-alsa

Ora sistemiamo il volume di uscita della scheda:

alsamixer -c 1

(contando che abbiate solamente 1 scheda audio, oltre alla scheda TV, altrimenti usate -c X, con X pari al numero della scheda audio corrispondente alla scheda TV).

Infine aggiungete queste opzioni per mplayer:

-tv alsa:adevice=hw.1,0:amode=1:audiorate=32000:forceaudio\
:volume=100:immediatemode=0

Come per magia ora avrete anche l’audio!

EOF

DVB-T: ricerca dei canali senza file di configurazione

Nel precedente post su come abilitare il DVB-T, mostravo come effettuare una scansione delle frequenze partendo da un file preconfigurato fornito con le dvb-apps.

Vediamo oggi come effettuare una ricerca su tutte le frequenze disponibili, nel caso in cui nessuno dei file preconfigurati vada bene.

Per prima cosa è necessario installare w_scan, per esempio in gentoo basta un semplice:

emerge w_scan

quindi si crea un proprio file di configurazione tramite il comando:

w_scan -x > it-Città

in questo modo verrà creato un vostro personale file, che potrete usare per creare il vostro channel.conf, utilizzando dvbscan, come mostrato nel mio precedente post (link all’inizio del post).

Ecco fatto!

EOF

V4L: cercare il card number e il tuner number

Come visto nei precendenti post sull’argomento TV & Linux, per poter utilizzare le schede TV è necessario impostare come opzioni dei moduli (della scheda e del tuner) i parametri card number e tuner number.
Con la mia prima scheda TV (una vecchia pinnacle pctv) ricordo di aver perso moltissimo tempo cercando in internet qualche guida che mi indicasse i valori corretti di questi parametri.
Con la mia nuova scheda invece ho scoperto che un elenco molto ricco di questi valori è disponibile all’interno del kernel (o meglio all’interno della sua documentazione)…

matrix_trinidy_tux_jpg

Provate a dare un’occhiata al contenuto di questa dir:

/usr/src/linux/Documentation/video4linux/

noterete la presenza di molti file CARDLIST.* (dove al posto di * compaiono i nomi dei vari moduli: bttv, saa7134,…).
Bene, il contenuto di questi file è proprio un elenco delle schede supportate dal relativo modulo, con l’aggiunta del corrispettivo card number.
Lo stesso vale per il tuner, infatti è presente il file CARDLIST.tuner.

Beh, se avete intenzione di comprare una scheda TV, ora sapete dove trovare un elenco di schede supportate!!!

Java printing & CUPS

Chi di voi abbia avuto necessità di utilizzare il layer di stampa di Java su un sistema con CUPS si sarà ritrovato con una simpatica eccezione di tipo NullPointerException al posto della finestra di dialogo della stampante, questo problema è abbastanza noto in rete (ci sono bug segnalati su vari forum di distro e persino sul sito della SUN), tuttavia non è semplicissimo arrivare ad una soluzione.
Dopo aver girovagato per i meandri della rete per una buona mezz’ora mi sono finalmente imbattuto in questo post (tra l’altro abbastanza recente), che contiene una soluzione molto semplice e rapida al nostro problema.
In pratica il problema sta tutto in un parametro (relativo all’orientamento della pagina) che non viene valorizzato esplicitamente nel file di configurazione di CUPS, quindi basta aggiungere la seguente riga:

<DefaultPrinter Printer>
.
.
.
Option orientation-requested 3
</Printer>

al nostro /etc/cups/cupsd.conf, e come per incanto ecco ricomparire la finestra di dialogo:

Finestra di dialogo della stampante
Finestra di dialogo della stampante

EOF

Stampare in Java

Java è un ottimo linguaggio di programmazione ad oggetti, molto semplice da imparare e ben strutturato. Inoltre ci sono ottimi ambienti di sviluppo opensource come eclipse e netbeans, tuttavia se per caso avete bisogno di stampare un report, magari creato con iText allora iniziano i dolori, prima di tutto perché la documentazione scarseggia… vediamo quindi di scrivere due righe sull’argomento.

Servizio di Stampa di Java
Servizio di Stampa di Java

Continua a leggere Stampare in Java