Forms renderen op de client rendering-forms-at-the-client
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 een formulier op de client weergegeven. 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 gegenereerd, tenzij het basissubformulier het restoreState
kenmerk dat is ingesteld op auto
. Zie voor meer informatie over dit kenmerk Forms Designer.
Overzicht van de stappen summary-of-steps
Voer de volgende taken uit om een formulier op de client te genereren:
- 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.
Projectbestanden opnemen
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.
Een Forms Client API-object maken
Voordat u programmatisch een client-API-bewerking voor Forms-services kunt uitvoeren, moet u een Forms-serviceclient maken. Als u de Java API gebruikt, maakt u een FormsServiceClient
object. Als u de Forms-webservice-API gebruikt, maakt u een FormsService
object.
Opties voor renderen tijdens runtime van client instellen
U moet de optie voor het renderen van de client zo instellen dat een formulier op de client wordt gegenereerd door de instelling van de optie RenderAtClient
runtime-optie voor true
. Dit leidt ertoe dat het formulier wordt afgeleverd aan het clientapparaat waar het wordt gegenereerd. Indien RenderAtClient
is auto
(de standaardwaarde) 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 SeedPDF
optie. De SeedPDF
Deze optie combineert de container PDF (zaaddocument) 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 SeedPDF
Deze optie 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 een PDF-bestand. De volgende stappen zijn vereist om deze taak uit te voeren:
- Bepaal of u lettertypen in het PDF-bestand voor zaaizaad 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 fonts wettelijk kunt insluiten. Als er fonts zijn die u niet in het formulier kunt insluiten wanneer u het opslaat, wordt in Designer een bericht weergegeven 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, wordt u geadviseerd 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.
Een formulier weergeven op de client
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.
De formuliergegevensstroom naar de webbrowser van de client schrijven
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
Documenten doorgeven aan de Forms-service
Webtoepassingen maken die Forms renderen
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
- Een
ServiceClientFactory
object dat verbindingseigenschappen bevat. - Een
FormsServiceClient
object door de constructor ervan te gebruiken en door te gevenServiceClientFactory
object.
- Een
-
Opties voor renderen tijdens runtime van client instellen
- Een
PDFFormRenderSpec
object met behulp van de constructor. - Stel de
RenderAtClient
runtime-optie door het aanroepen van dePDFFormRenderSpec
objectsetRenderAtClient
methode en het doorgeven van de opsommingswaardeRenderAtClient.Yes
.
- Een
-
Een formulier weergeven op de client
De
FormsServiceClient
objectrenderPDFForm
en geeft de volgende waarden door:- Een tekenreekswaarde die de naam van het formulierontwerp opgeeft, inclusief de bestandsnaamextensie. Als u naar een formulierontwerp verwijst dat deel uitmaakt van een AEM Forms-toepassing, moet u het volledige pad opgeven, zoals
Applications/FormsApplication/1.0/FormsFolder/Loan.xdp
. - A
com.adobe.idp.Document
object dat gegevens bevat die met het formulier moeten worden samengevoegd. Als u geen gegevens wilt samenvoegen, geeft u een lege waarde doorcom.adobe.idp.Document
object. - A
PDFFormRenderSpec
-object dat uitvoeringsopties opslaat die vereist zijn om een formulier op de client te genereren. - A
URLSpec
object dat URI-waarden bevat die door de Forms-service worden vereist om een formulier te genereren. - A
java.util.HashMap
object waarin bestandsbijlagen zijn opgeslagen. Dit is een optionele parameter en u kuntnull
als u geen bestanden aan het formulier wilt koppelen.
De
renderPDFForm
methode 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 naar een formulierontwerp verwijst dat deel uitmaakt van een AEM Forms-toepassing, moet u het volledige pad opgeven, zoals
-
De formuliergegevensstroom naar de webbrowser van de client schrijven
- Een
com.adobe.idp.Document
door het object aan te roepenFormsResult
object 'sgetOutputContent
methode. - Hiermee wordt het inhoudstype van het dialoogvenster
com.adobe.idp.Document
object aanroepengetContentType
methode. - Stel de
javax.servlet.http.HttpServletResponse
inhoudstype van object aanroepensetContentType
en geeft u het inhoudstype van het dialoogvenster doorcom.adobe.idp.Document
object. - Een
javax.servlet.ServletOutputStream
object dat wordt gebruikt om de formuliergegevensstroom naar de webbrowser van de client te schrijven door het aanroepen van dejavax.servlet.http.HttpServletResponse
objectgetOutputStream
methode. - Een
java.io.InputStream
door het object aan te roepencom.adobe.idp.Document
objectgetInputStream
methode. - Maak een bytearray en vul deze met de formuliergegevensstroom door de
InputStream
objectread
en de bytearray doorgeven als een argument. - De
javax.servlet.ServletOutputStream
objectwrite
methode om de formuliergegevensstroom naar de webbrowser van de client te verzenden. Geef de bytearray door aan dewrite
methode.
- Een
Zie ook
Snel starten (SOAP-modus): Een formulier weergeven op de client met de Java API
Inclusief AEM Forms Java-bibliotheekbestanden
Verbindingseigenschappen instellen
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
Een
FormsService
-object en stel verificatiewaarden in. -
Opties voor renderen tijdens runtime van client instellen
- Een
PDFFormRenderSpec
object met behulp van de constructor. - Stel de
RenderAtClient
runtime-optie door het aanroepen van dePDFFormRenderSpec
objectsetRenderAtClient
methode en het doorgeven van de tekenreekswaardeRenderAtClient.Yes
.
- Een
-
Een formulier weergeven op de client
De
FormsService
objectrenderPDFForm
en geeft de volgende waarden door:- Een tekenreekswaarde die de naam van het formulierontwerp opgeeft, inclusief de bestandsnaamextensie. Als u naar een formulierontwerp verwijst dat deel uitmaakt van een Forms-toepassing, moet u het volledige pad opgeven, zoals
Applications/FormsApplication/1.0/FormsFolder/Loan.xdp
. - A
BLOB
object dat gegevens bevat die met het formulier moeten worden samengevoegd. Als u geen gegevens wilt samenvoegen, geeft u doornull
. (Zie Forms vooraf vullen met stroombare indelingen.) - A
PDFFormRenderSpec
-object dat uitvoeringsopties opslaat die vereist zijn om een formulier op de client te genereren. - A
URLSpec
object dat URI-waarden bevat die door de Forms-service worden vereist. - A
java.util.HashMap
object waarin bestandsbijlagen zijn opgeslagen. Dit is een optionele parameter en u kuntnull
als u geen bestanden aan het formulier wilt koppelen. - Een leeg
com.adobe.idp.services.holders.BLOBHolder
object dat door de methode wordt gevuld. Deze parameter wordt gebruikt om het weergegeven PDF formulier op te slaan. - 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.
De
renderPDFForm
wordt decom.adobe.idp.services.holders.FormsResultHolder
object dat wordt doorgegeven als de laatste argumentwaarde 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 naar een formulierontwerp verwijst dat deel uitmaakt van een Forms-toepassing, moet u het volledige pad opgeven, zoals
-
De formuliergegevensstroom naar de webbrowser van de client schrijven
- Een
FormResult
object door de waarde van het object op te halencom.adobe.idp.services.holders.FormsResultHolder
objectvalue
lid. - Een
BLOB
object dat formuliergegevens bevat door hetFormsResult
objectgetOutputContent
methode. - Hiermee wordt het inhoudstype van het dialoogvenster
BLOB
object aanroepengetContentType
methode. - Stel de
javax.servlet.http.HttpServletResponse
inhoudstype van object aanroepensetContentType
en geeft u het inhoudstype van het dialoogvenster doorBLOB
object. - Een
javax.servlet.ServletOutputStream
object dat wordt gebruikt om de formuliergegevensstroom naar de webbrowser van de client te schrijven door het aanroepen van dejavax.servlet.http.HttpServletResponse
objectgetOutputStream
methode. - Maak een bytearray en vul deze door het
BLOB
objectgetBinaryData
methode. Deze taak wijst de inhoud van toeFormsResult
object naar de bytearray. - De
javax.servlet.http.HttpServletResponse
objectwrite
methode om de formuliergegevensstroom naar de webbrowser van de client te verzenden. Geef de bytearray door aan dewrite
methode.
- Een
Zie ook
AEM Forms aanroepen met Base64-codering