Forms renderen op de client rendering-forms-at-the-client
de Steekproeven en de voorbeelden in dit document zijn slechts voor AEM Forms op milieu JEE.
Forms renderen op de client rendering-forms-at-the-client-inner
U kunt de levering van PDF-inhoud optimaliseren en de mogelijkheid van de Forms-service om netwerkbelasting te verwerken verbeteren door de renderingmogelijkheden aan de clientzijde van Acrobat of Adobe Reader te gebruiken. Dit proces wordt het weergeven van een formulier op de client genoemd. Als u een formulier op de client wilt genereren, moet het clientapparaat (meestal een webbrowser) Acrobat 7.0 of Adobe Reader 7.0 of hoger gebruiken.
Wijzigingen in een formulier die het resultaat zijn van scriptuitvoering op de server, worden niet weerspiegeld in een formulier dat op de client wordt weergegeven, tenzij het basissubformulier het kenmerk restoreState
bevat dat is ingesteld op auto
. Voor meer informatie over dit attribuut, zie Forms Designer.
Overzicht van de stappen summary-of-steps
Als u een formulier op de client wilt genereren, voert u de volgende taken uit:
- Inclusief projectbestanden.
- Maak een Forms Client API-object.
- Opties voor renderen tijdens runtime van client instellen.
- Een formulier weergeven op de client.
- Schrijf het formulier naar de webbrowser van de client.
omvat projectdossiers
Neem de benodigde bestanden op in uw ontwikkelingsproject. Als u een clienttoepassing maakt met Java, neemt u de benodigde JAR-bestanden op. Als u webservices gebruikt, dient u de proxybestanden op te nemen.
creeer een voorwerp van Forms Cliënt API
Voordat u programmatisch een client-API-bewerking voor Forms-services kunt uitvoeren, moet u een Forms-serviceclient maken. Maak een FormsServiceClient
-object als u de Java API gebruikt. Maak een FormsService
-object als u de Forms-API voor webservices gebruikt.
plaats cliënt die runtime opties teruggeven
Stel de optie voor het renderen van de client in om een formulier op de client te genereren door de optie voor RenderAtClient
runtime in te stellen op true
. Dit leidt ertoe dat het formulier wordt afgeleverd aan het clientapparaat waar het wordt gegenereerd. Als de waarde RenderAtClient
auto
(de standaardwaarde) is, bepaalt het formulierontwerp of het formulier op de client wordt gegenereerd. Het formulierontwerp moet een formulierontwerp met een stroombare indeling zijn.
Een optionele uitvoeringsoptie die u kunt instellen, is de optie SeedPDF
. Met de optie SeedPDF
wordt de container PDF (zaaddocument) gecombineerd met het formulierontwerp en de XML-gegevens. Zowel het formulierontwerp als de XML-gegevens worden geleverd aan Acrobat of Adobe Reader, waar het formulier wordt gegenereerd. De optie SeedPDF
kan worden gebruikt wanneer de clientcomputer geen fonts heeft die in het formulier worden gebruikt, bijvoorbeeld wanneer een eindgebruiker geen licentie heeft voor het gebruik van een font dat de eigenaar van het formulier mag gebruiken.
U kunt Designer gebruiken om een eenvoudig dynamisch PDF-bestand te maken dat u kunt gebruiken als PDF-bestand. De volgende stappen zijn vereist om deze taak uit te voeren:
- Bepaal of u lettertypen in het zaadbestand wilt insluiten. Het zaadbestand moet aanvullende fonts bevatten die zijn vereist voor het PDF-formulier dat wordt gegenereerd. Wanneer u lettertypen insluit in het zaadbestand PDF, moet u ervoor zorgen dat u geen licentieovereenkomsten voor lettertypen schendt. In Designer kunt u bepalen of u lettertypen wettelijk kunt insluiten. Als er bij het opslaan fonts zijn die u niet in het formulier kunt insluiten, geeft Designer een bericht weer met de fonts die u niet kunt insluiten. Dit bericht wordt niet weergegeven in Designer voor statische PDF-documenten.
- Als u het zaadbestand in Designer maakt, is het raadzaam ten minste een tekstveld toe te voegen dat een bericht bevat. Het bericht moet worden gericht aan gebruikers van eerdere versies van Adobe Reader en aangeven dat ze Acrobat 7.0 of hoger of Adobe Reader 7.0 of hoger nodig hebben om het document te kunnen bekijken.
- Sla het zaadbestand op als een dynamisch PDF-PDF-bestand met de extensie van het PDF-bestand.
geeft een vorm bij de cliënt terug
Als u een formulier op de client wilt genereren, moet u ervoor zorgen dat de renderopties voor de client in de toepassingslogica zijn opgenomen om een formulier te genereren.
schrijf de stroom van vormgegevens aan cliëntWeb browser
De Forms-service maakt een formuliergegevensstroom die u naar de webbrowser van de client moet schrijven. Als het formulier wordt geschreven naar de webbrowser van de client, wordt het gegenereerd door Acrobat 7.0 of Adobe Reader 7.0 of hoger en is het zichtbaar voor de gebruiker.
zie ook
Een formulier op de client renderen met de Java API
Een formulier op de client renderen met de API voor webservices
Inclusief AEM Forms Java-bibliotheekbestanden
Verbindingseigenschappen instellen
Een formulier op de client renderen met de Java API render-a-form-at-the-client-using-the-java-api
Een formulier op de client renderen met de Forms API (Java):
-
Projectbestanden opnemen
Neem client-JAR-bestanden, zoals adobe-forms-client.jar, op in het klassenpad van uw Java-project.
-
Een Forms Client API-object maken
- Maak een
ServiceClientFactory
-object dat verbindingseigenschappen bevat. - Maak een
FormsServiceClient
-object door de constructor ervan te gebruiken en hetServiceClientFactory
-object door te geven.
- Maak een
-
Opties voor renderen tijdens runtime van client instellen
- Maak een
PDFFormRenderSpec
-object met behulp van de constructor. - Stel de optie
RenderAtClient
runtime in door de methodePDFFormRenderSpec
objectsetRenderAtClient
aan te roepen en de opsommingswaardeRenderAtClient.Yes
door te geven.
- Maak een
-
Een formulier weergeven op de client
Roep de methode
renderPDFForm
van het objectFormsServiceClient
aan en geef de volgende waarden door:- Een tekenreekswaarde die de naam van het formulierontwerp opgeeft, inclusief de bestandsnaamextensie. Als u verwijst naar een formulierontwerp dat deel uitmaakt van een AEM Forms-toepassing, moet u het volledige pad opgeven, bijvoorbeeld
Applications/FormsApplication/1.0/FormsFolder/Loan.xdp
. - Een
com.adobe.idp.Document
-object dat gegevens bevat die met het formulier moeten worden samengevoegd. Wanneer u geen gegevens wilt samenvoegen, geeft u een leegcom.adobe.idp.Document
-object door. - Een
PDFFormRenderSpec
-object dat uitvoeringsopties opslaat die vereist zijn om een formulier op de client te genereren. - Een
URLSpec
-object dat URI-waarden bevat die door de Forms-service worden vereist om een formulier te genereren. - Een
java.util.HashMap
-object dat bestandsbijlagen opslaat. Dit is een optionele parameter en u kuntnull
opgeven als u geen bestanden aan het formulier wilt koppelen.
De methode
renderPDFForm
retourneert eenFormsResult
-object dat een formuliergegevensstroom bevat die naar de webbrowser van de client moet worden geschreven. - Een tekenreekswaarde die de naam van het formulierontwerp opgeeft, inclusief de bestandsnaamextensie. Als u verwijst naar een formulierontwerp dat deel uitmaakt van een AEM Forms-toepassing, moet u het volledige pad opgeven, bijvoorbeeld
-
De formuliergegevensstroom naar de webbrowser van de client schrijven
- Maak een
com.adobe.idp.Document
-object door de methodeFormsResult
object 'sgetOutputContent
aan te roepen. - Haal het inhoudstype van het object
com.adobe.idp.Document
op door de methodegetContentType
ervan aan te roepen. - Stel het inhoudstype van het
javax.servlet.http.HttpServletResponse
-object in door de methodesetContentType
ervan aan te roepen en het inhoudstype van hetcom.adobe.idp.Document
-object door te geven. - Maak een
javax.servlet.ServletOutputStream
-object dat wordt gebruikt om de formuliergegevensstroom naar de webbrowser van de client te schrijven door de methodejavax.servlet.http.HttpServletResponse
objectgetOutputStream
aan te roepen. - Maak een
java.io.InputStream
-object door de methodecom.adobe.idp.Document
objectgetInputStream
aan te roepen. - Maak een bytearray en vul deze met de formuliergegevensstroom door de methode
read
van het objectInputStream
aan te roepen en de bytearray als een argument door te geven. - Roep de methode
write
van het objectjavax.servlet.ServletOutputStream
aan om de gegevensstroom van het formulier naar de webbrowser van de client te verzenden. Geef de bytearray door aan de methodewrite
.
- Maak een
zie ook
Snel starten (SOAP modus): Een formulier op de client genereren met de Java API
Een formulier op de client renderen met de API voor webservices render-a-form-at-the-client-using-the-web-service-api
Een formulier op de client renderen met de Forms API (webservice):
-
Projectbestanden opnemen
- Maak Java-proxyklassen die gebruikmaken van de Forms-service WSDL.
- Neem de Java-proxyklassen op in het klassepad.
-
Een Forms Client API-object maken
Maak een
FormsService
-object en stel de verificatiewaarden in. -
Opties voor renderen tijdens runtime van client instellen
- Maak een
PDFFormRenderSpec
-object met behulp van de constructor. - Stel de optie
RenderAtClient
runtime in door de methodePDFFormRenderSpec
objectsetRenderAtClient
aan te roepen en de tekenreekswaardeRenderAtClient.Yes
door te geven.
- Maak een
-
Een formulier weergeven op de client
Roep de methode
renderPDFForm
van het objectFormsService
aan en geef de volgende waarden door:- Een tekenreekswaarde die de naam van het formulierontwerp opgeeft, inclusief de bestandsnaamextensie. Als u verwijst naar een formulierontwerp dat deel uitmaakt van een Forms-toepassing, moet u het volledige pad opgeven, bijvoorbeeld
Applications/FormsApplication/1.0/FormsFolder/Loan.xdp
. - Een
BLOB
-object dat gegevens bevat die met het formulier moeten worden samengevoegd. Geefnull
door als u geen gegevens wilt samenvoegen. (Zie Prepopulating Forms met Stroombare Lay-outs.) - Een
PDFFormRenderSpec
-object dat uitvoeringsopties opslaat die vereist zijn om een formulier op de client te genereren. - Een
URLSpec
-object dat URI-waarden bevat die door de Forms-service worden vereist. - Een
java.util.HashMap
-object dat bestandsbijlagen opslaat. Dit is een optionele parameter en u kuntnull
opgeven als u geen bestanden aan het formulier wilt koppelen. - Een leeg
com.adobe.idp.services.holders.BLOBHolder
-object dat door de methode wordt gevuld. Met deze parameter wordt het weergegeven PDF-formulier opgeslagen. - Een leeg
javax.xml.rpc.holders.LongHolder
-object dat door de methode wordt gevuld. (In dit argument wordt het aantal pagina's in het formulier opgeslagen). - Een leeg
javax.xml.rpc.holders.StringHolder
-object dat door de methode wordt gevuld. (In dit argument wordt de waarde van de landinstelling opgeslagen.) - Een leeg
com.adobe.idp.services.holders.FormsResultHolder
-object dat de resultaten van deze bewerking bevat.
Met de methode
renderPDFForm
wordt hetcom.adobe.idp.services.holders.FormsResultHolder
-object dat als laatste argumentwaarde wordt doorgegeven, gevuld met een formuliergegevensstroom die naar de webbrowser van de client moet worden geschreven. - Een tekenreekswaarde die de naam van het formulierontwerp opgeeft, inclusief de bestandsnaamextensie. Als u verwijst naar een formulierontwerp dat deel uitmaakt van een Forms-toepassing, moet u het volledige pad opgeven, bijvoorbeeld
-
De formuliergegevensstroom naar de webbrowser van de client schrijven
- Maak een
FormResult
-object door de waarde van het gegevenslid van hetcom.adobe.idp.services.holders.FormsResultHolder
objectvalue
op te halen. - Maak een
BLOB
-object dat formuliergegevens bevat door de methodeFormsResult
objectgetOutputContent
aan te roepen. - Haal het inhoudstype van het object
BLOB
op door de methodegetContentType
ervan aan te roepen. - Stel het inhoudstype van het
javax.servlet.http.HttpServletResponse
-object in door de methodesetContentType
ervan aan te roepen en het inhoudstype van hetBLOB
-object door te geven. - Maak een
javax.servlet.ServletOutputStream
-object dat wordt gebruikt om de formuliergegevensstroom naar de webbrowser van de client te schrijven door de methodejavax.servlet.http.HttpServletResponse
objectgetOutputStream
aan te roepen. - Maak een bytearray en vul deze door de methode
getBinaryData
van het objectBLOB
aan te roepen. Hierdoor wordt de inhoud van hetFormsResult
-object toegewezen aan de bytearray. - Roep de methode
write
van het objectjavax.servlet.http.HttpServletResponse
aan om de gegevensstroom van het formulier naar de webbrowser van de client te verzenden. Geef de bytearray door aan de methodewrite
.
- Maak een
zie ook
AEM Forms aanroepen met Base64-codering