Kirjautuminen

Haku

Tehtävät

Keskustelu: Yleinen keskustelu: javascript ja PDF lomake

heikkju2 [21.01.2024 18:24:11]

#

Olisko täällä ketään joka olisi perehtynyt PDF lomakkeen tekstikentän scripteihin. en ole vielä keksinyt miten noissa tehdään muita kuin peruslaskuja nehän on siinä jo valmiina, simppeli esimerkki että pääsen juonesta kiinni:
Lomakkeella on kolme tekstikenttää johon syötetään lukuja(Text1, text2 ja text3)
Neljänteen laskutoimitus eli: text4=text1*text2-text3

peran [21.01.2024 19:34:50]

#

Millä ohjelmalla pitäisi tehdä lomake ?

Jos php:llä ja TCPDF, niin hivenen muokkaamalla Esimerkki 14:sta, niin saa tehdyksi yksinkertaisen yhteenlaskun.

rivi:104 siis laita pdf-kenttään uusi tekstikenttä, joka on nimeltään summa.
$pdf->TextField('lastname', 50, 5); -> $pdf->TextField('lastname', 50, 5);$pdf->Cell(20,5,'Summa');$pdf->TextField('summa',30,5);

Rivit: 181-190 lisää else osa ja kommentoi turhat if-lauseet ja print-lause.
	else {
		f1=getField('firstname').value;
		f2=getField('lastname').value;
		val1=0+f1+f2;
		getField('summa').value=val1;
	}
	//if(!CheckField('gender','Gender is mandatory')) {return;}
	//if(!CheckField('address','Address is mandatory')) {return;}
	//print();
}
EOD;

Lisäksi poista pdf:n tiedostoon tallennus, mikäli haluat tehdä lomakkeen dynaamisesti php:llä...
$pdf->Output('example_014.pdf', 'D') -> $pdf->Output();

peran [21.01.2024 19:36:24]

#

Siis tämän jälkeen print-painiketta painamalla tulee summa 104 rivin muokkaamaan summa-kenttään. Summa siis lasketaan etunimestä + sukunimestä.

Edit - projekti löytyy osoitteesta ... https://tcpdf.org/

diff pitäisi olla jotakin vastaavaa...

$ diff -rup example_014.php example_014_Oma.php
--- example_014.php     2023-09-06 18:09:26.000000000 +0300
+++ example_014_Oma.php 2024-01-21 19:46:26.660951308 +0200
@@ -101,7 +101,7 @@ $pdf->Ln(6);

 // Last name
 $pdf->Cell(35, 5, 'Last name:');
-$pdf->TextField('lastname', 50, 5);
+$pdf->TextField('lastname', 50, 5);$pdf->Cell(20,5,'Summa');$pdf->TextField('summa',30,5);
 $pdf->Ln(6);

 // Gender
@@ -178,9 +178,16 @@ function CheckField(name,message) {
 function Print() {
        if(!CheckField('firstname','First name is mandatory')) {return;}
        if(!CheckField('lastname','Last name is mandatory')) {return;}
-       if(!CheckField('gender','Gender is mandatory')) {return;}
-       if(!CheckField('address','Address is mandatory')) {return;}
-       print();
+       else {
+               f1=getField('firstname').value;
+               f2=getField('lastname').value;
+               val1=0+f1+f2;
+               getField('summa').value=val1;
+               //getField('summa').setValue(val1);
+       }
+       //if(!CheckField('gender','Gender is mandatory')) {return;}
+       //if(!CheckField('address','Address is mandatory')) {return;}
+       //print();
 }
 EOD;

@@ -190,8 +197,8 @@ $pdf->IncludeJS($js);
 // ---------------------------------------------------------

 //Close and output PDF document
-$pdf->Output('example_014.pdf', 'D');
-
+//$pdf->Output('example_014_Oma.pdf', 'D');
+$pdf->Output();
 //============================================================+
 // END OF FILE
 //============================================================+

heikkju2 [23.01.2024 20:00:53]

#

Anteeksi kömpelyyteni, tarkoitin Adobe Acrobat:illa luotua lomaketta joihin tekstikenttään syötetään laskukaava siinä käytetään JavaScriptiä

peran [24.01.2024 10:12:52]

#

En ole koskaan käyttänyt Adobe Acrobat:ia lomakkeen luomiseen, joten googlasin, ja tämä näytti olevan lähellä kaipaamaasi...

https://superuser.com/questions/1701663/how-can-i-configure-acrobat-so-that-it-runs-a-acrobat-javascript-script-whenever

Sieltä:

ko.Sivulta kirjoitti:

Tools>JavaScript>Document JavaScripts

Elikkä sieltä pitäisi pystyä lisäämään pdf:ään javascriptia. Todennäköisesti scripti kirjoitetaan samalla tavalla kuin tcpdf:ssäkin.

Elikkä jotenkin pitää nimetä ja määritellä kentät (antaa niille ID/nimi):
Sen jälkeen pitäisi lisätä haluttu JavaScript-koodi haluttuihin vastaamaan haluttuihin viesteihin.

Edit - Jos tämä ei riitä, niin tutki, kuinka tspdf:n esimerkeissä on kyseinen javascript-koodin lisääminen toteutettu ja sovella sitä.

Edit 2 - Huomioi, ettei pdf ole mikään taulukkolaskentaohjelma (kuten excel tai libreOffice), johon kenttiin vain lisättäisiin arvoja ja kaavoja, ja sieltä pullahtaisi tuloste näkyviin...
... vaan se on lähempänä html:ää, johon lisätään JavaScriptiä. Toki pdf:ään JavaScript:n koodaaminen saattaa olla vähän vaikeampaa kuin html:ään. (Vai johtuuko se vain omasta osaamisen puutteestani.)

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta