EDITARE PDF DAL PROPRIO SITO
Autor: Alberto Fino
Visitado 4534,
Followers 6,
Compartido 0
Esiste un Widget o plug in, meglio se gratuito, per poter aprire e compilare un file PDF editabile direttamente dal proprio sito?
Devo implementare questa funzionalità sul mio Sito Web: aprire, compilare e stampare o scaricare, sul proprio PC, un modello PDF editabile...
Qualche idea...
Publicado en
Autor
Forse basterebbe potenziare l'oggetto opzionale "PDF File" presente nel Marketplace..
non so se ho capito, ma per compilare un pdf devi averlo preparato tu in modo che sia "editabile", cosa che si fa in vari modi..., ad esempio con adobe acrobat completo, ma non gratuito, o altri tool gratuiti di cui ti puoi documentare in rete... con website non c'entra nulla... devi prepararlo tu prima...
Qualcosa si può fare se hai voglia di sporcarti le mani http://www.fpdf.org
Ciao
... ... facile facile... ...
... in aggiunta a quanto anticipato da Skeggia e Giorgio, ...e trascurando il fatto che sarebbe sempre meglio evitare l'uso di PDF nel sito, ...in definitiva il PDF editabile devi realizzarlo con il tuo editor per files PDF se lo sai usare, (per es. OO.o.Writer, semplice), oppure con un qualsiasi servizio online reperibile in rete (per es. PDFescape); ...quindi extra del programma, e nel caso puoi documentarti in rete nello specifico di quel che ti serve ottenere (*)...
(*) ...potresti anche sopperire in modo migliore con un semplice Oggetto Modulo di Contatto ...e con questo stesso, volendo, potresti far editare in un Foglio di Calcolo i dati del CSV...
... adesso dipenderà a te saper valutare e fare ...
.
Autor
I file PDF li realizzo io con vari strumenti e da molto tempo, il mio problema è come poterli editare direttamente dal sito e possibilmente senza che si possa scaricare sul proprio PC il modello vuoto.
Esiste o esisterà mai una soluzione?
Un esempio pratico è disponibile qui: https://www.amministrazionicomunali.it/modello_f24/modello_f24_online.php
Controlla bene! Il link che che hai postato non è un PDF ma un form (tipo Oggetto modulo) che una volta compilato viene trasformato in pdf con un sistema tipo quello che ti ho linkato.
Ciao
ripeto che il pdf compilabile lo devi preparare te a monte, con programmi che te lo consentano, ad esempio INDESIGN, che lo permentte, ma poi potresti trovarti nella situazione dello screenshot... che il browser non supporta i moduli compilabili... screenshot...
Ciao Scheggia, ma usando un iframe con il visualizzatore di google credo che dovrebbe funzionare anche se il browser non supporta i moduli compilabili o sbaglio?
<iframe
src="https://docs.google.com/viewer?embedded=true&url=http://www.miosito.xx/file.pdf"
width="100%" height="1000" style="border:none;">
</iframe>
Autor
Credo che non sto riesco a spiegarmi:
Infatti, come ho già detto che i modelli pdf editabili li realizzo io. Attualmente chi deve compilare i modelli editabili li scarica dal mio sito e li compila sul proprio pc. Il modello editabile vuoto resta nel pc di chi lo scarica.
io devo fare in modo che il modello editabile non sia più scaricabile sul proprio pc, se l'utente vuole fruire del modello editabile lo deve compilare dal mio sito, altrimenti può scaricare la versione statica (non editabile).
Si lo so che il link è un form PHP, ho linkato quel sito perché da l'idea di ciò che mi serve, ovvero il modello editabile può essere compilato solo dal sito mentre il download fa scaricare solo un modello pdf statico...
Alberto, ripeto... non è un problema di come li crei, ma di browser... guarda questa prova, con firefox e con chrome e dicci se trovi differenze... naturalmente con ffox non si edita mentre con chrome si... potresti avere queste difficoltà con gli utenti...
https://www.skeggia12.it/test/16/beta1/pagina-5.html
e poi non credo sia possibile, evitare che si possa scaricare anche il compilabile offline...
... per l'appunto, ...andrebbero scaricati ed editati nel proprio reader se valido...
... non essendo il formato PDF nato per il web e né adatto per il web...
... le alternative sono state già indicate ...
.
Questo è invece un esempio con FPDF https://www.sanfermoglider.it/stampa-pdf.php
... col PHP si trovano diversi metodi; ... bell'esempio ... ... ...forse potresti salvare la variabile nr. tessera...
Grazie KolAsim, si l'originale prende i dati da un profilo socio (nome, tessera, foto e anno) salvati in un database del mio gruppo. Questo era un'esempio "al volo".
Sembra un po' complicata la gestione all'inizio di quella classe (fpdf), ma tra tutorial ed esempi, si possono passare alcune serate divertendosi...
... infatti, ... una volta che hai indicato la strada, ...chi vuole può fare...... ciao
@Giorgio non potresti cortesemente allegare il tuo esempio così ci faciliti il lavoro. Anch'io come Alberto sono interessato a inserire un modello pdf editabile e quindi poter inserire il testo in vari campi del pdf.
Grazie
Devi creare un form che raccoglie i dati che ti servono. (codice dell'esempio)
<table>
<form method="post" action="stampa1.php" >
<tr> <td>Cognome: <td><input type="text" name="cognome" value=""><br></tr>
<tr><td>Nome: <td> <input type="text" name="nome" value=""> <br></tr>
<tr> <td>Data: <td><input type="text" name="Data" value="2018"> <br></tr>
<tr> <td>Tessera nr: <td><input type="text" name="tessera" value="1"></tr>
</table><br><input type=submit value='stampa tessera PDF' >
</form>
Li invii tramite post alla pagina che raccoglie i dati e utilizzando la classe FPDF stampa il pdf. Ecco il codice da mettere però in proprietò > esperto > prima dell'apertura del codice html
<?php
$cognome = trim($_REQUEST['cognome']);
$nome = trim($_REQUEST['nome']);
$Data=trim($_REQUEST['Data']);
$tessera=trim($_REQUEST['tessera']);
$foto="public/default";
require('pdf_js.php');
class PDF_AutoPrint extends PDF_JavaScript{function AutoPrint($dialog=false){
//Open the print dialog or start printing immediately on the standard printer
$param=($dialog ? 'true' : 'false');
$script="print($param);";
$this->IncludeJS($script);}function AutoPrintToPrinter($server, $printer, $dialog=true){
//Print on a shared printer (requires at least Acrobat 6)
$script = "var pp = getPrintParams();";
if($dialog)
$script .= "pp.interactive = pp.constants.interactionLevel.full;";
else
$script .= "pp.interactive = pp.constants.interactionLevel.automatic;";
$script .= "pp.printerName = '\\\\\\\\".$server."\\\\".$printer."';";
$script .= "print(pp);";
$this->IncludeJS($script);
}
function Header()
{
// Logo tessera
$this->SetFont('Arial','B',20);
//disegna un rettangolo
$this->SetFillColor(200,220,255);
$this->Rect(30,30,90,58,'FD');
}}
$pdf=new PDF_AutoPrint();
$pdf->AddPage();
$pdf->SetXY(35, 32);
$pdf->SetTextColor(0,0,0);
$pdf->SetFont('Arial','B',10);
$pdf->cell(0,7,"tessera nr ",0,0,'L');
$pdf->SetFillColor(240,232,64);
$pdf->SetFont('Arial','B',14);
$pdf->SetXY(55, 32);
$pdf->SetTextColor(169,30,31);
$pdf->cell(10,7, $tessera,'1',0,'C',true);
$pdf->SetXY(30, 40);
$pdf->SetFont('Arial','B',24);
$pdf->SetTextColor(255,255,255);
$pdf->SetFillColor(034,113,179);
$pdf->cell(46,14, $Data,0,'1','C',true);
$pdf->SetTextColor(0);
$dimensioni = getimagesize($foto.".jpg");
$larghezza = $dimensioni[0];
$altezza = $dimensioni[1];
$differenza=$larghezza-$altezza;
$px=75;
$py=30;
If ($differenza>0)
{
$a=45;
$b="";
//$py=35-($differenza*45/300/2);
$py=34-($differenza*45/300/2);
}else If ($differenza<0)
{
$b=45;
$a="";
$px=75-($differenza*45/300/2);
}else{
$b=45;
$a="";
}
$pdf->Image($foto.".jpg",$px,$py,$a,$b);
$pdf->SetXY(30, 60);
$pdf->SetFont('Arial','B',10);
$pdf->SetTextColor(169,30,31);
$pdf->cell(46,0,"Socio ",0,0,'C');
$pdf->SetTextColor(0,0,0);
$pdf->SetXY(30, 65);
$pdf->SetFont('Arial','B',10);
$pdf->cell(46,0, $cognome. " ". $nome,0,1,'C');
$pdf->SetTextColor(034,113,179);
$pdf->SetXY(30, 73);
$pdf->SetFillColor(255,255,255);
$pdf->SetFont('Arial','B',8);
$pdf->cell(90,5,"SanFermoGlider - Associazione sportiva legalmente costituita",'T',1,'C',true);
$pdf->Image('forbici.jpg',24,85,10);
$pdf->Image('top.jpg',30,78,90);
$pdf->Rect(30,30,90,58,'D');
$pdf->Ln(40);
$pdf->SetXY(30, 110);
$pdf->SetTextColor(0,0,0);
$pdf->SetFont('Arial','B',8);
$pdf->MultiCell(90,5,"Stampa la tessera, ritagliala e tienila con te. \nQuesta tessera ti riconosce quale socio SanFermoGlider",1,'C');
$pdf->AutoPrint(true);
$pdf->Output();
?>
Questo è il codice del file fpdf_js.php
che inserisce la classe fpdf e l'estensione PDF_autoprint
<?php
require('fpdf.php');
class PDF_JavaScript extends FPDF {
var $javascript;
var $n_js;
function IncludeJS($script) {
$this->javascript=$script;
}
function _putjavascript() {
$this->_newobj();
$this->n_js=$this->n;
$this->_out('<<');
$this->_out('/Names [(EmbeddedJS) '.($this->n+1).' 0 R]');
$this->_out('>>');
$this->_out('endobj');
$this->_newobj();
$this->_out('<<');
$this->_out('/S /JavaScript');
$this->_out('/JS '.$this->_textstring($this->javascript));
$this->_out('>>');
$this->_out('endobj');
}
function _putresources() {
parent::_putresources();
if (!empty($this->javascript)) {
$this->_putjavascript();
}
}
function _putcatalog() {
parent::_putcatalog();
if (!empty($this->javascript)) {
$this->_out('/Names <</JavaScript '.($this->n_js).' 0 R>>');
}
}
}
?>
Naturalmente dovrai uplodare la classe fpdf dal sito fpdf.org e insrirla nel tuo server seguendo le facili istruzioni.
In questo caso il copia incolla non funzionerà in quanto ci sono troppe personalizzazzioni da fare, meglio impratichirsi con il tutorial e il manuale.
Grazie
Autor
Grazie a tutti per i consigli...
Ciao Skeggia come hai fatto a fare un anteprima del word editabile ?
... devi leggere tutto; ... è stato detto all'inizio e ripetuto a seguito; ... devi usare il tuo editor per files PDF...
... riferimento: https://helpcenter.websitex5.com/es/post/197286
.
Cioè creo prima il mio file word lo trasformo in pdf e poi lo metto sul sito ?
ma il pdf deve essere editabile già quando lo creo ?
sono un pò di coccio :-)
... non conosco word, ma se è un programma valido come OO.o.Writer, ...SI' + SI'...
... detto prima:
... ovviamente con i limiti anzidetti di alcuni browser...
.