Pregunta

Estoy tratando de encontrar la manera de hacer un hipervínculo en un formulario Livecycle lo que apunta a una dirección URL que va a cambiar en diferentes días de que la forma se vuelve. Por ejemplo, en un día que puede ser que desee el hipervínculo para que apunte a:

misitioweb opción / mipágina? = XXX

y en otro día que yo quiero que apuntan a:

misitioweb / mipágina? Option = YYY

El XXX y YYY se pueden pasar en los datos del formulario con bastante facilidad como XML, pero simplemente no saben cómo hacer para que el hipervínculo se cambia para corresponder a esta.

¿Alguna sugerencia?

¿Fue útil?

Solución

Esto se puede lograr con JavaScript en LiveCycle Designer. La siguiente secuencia de comandos, colocado en el evento docReady del formulario le permitirá cambiar dinámicamente la dirección URL de un objeto de texto.

 form1::docReady - (JavaScript, client)
// If this code is running on the server, you don't want it to run any code 
// that might force a relayout, or you could get stuck in an infinite loop
if (xfa.host.name != "XFAPresentationAgent") {

    // You would load the URL that you want into this variable, based on 
    // whatever XML data is being passed into your form
    var sURL = "www.stackoverflow.com"; // mywebsite/mypage?option=xxx

    // URLs are encoded in XHTML.  In order to change the URL, you need 
    // to create the right XHTML string and push it into the Text object's 
    // <value> node. This is a super simple XHTML shell for this purpose.  
    // You could add all sorts of markup to make your hyperlink look pretty
    var sRichText = "<body><p><a href=\"" + sURL + "\">Foo</a></p></body>";

    // Assuming you have a text object called "Text1" on the form, this 
    // call will push the rich text into the node.  Note that this call        
    // will force a re-layout of the form
    this.resolveNode("Text1").value.exData.loadXML(sRichText, false, true);
}

Hay un par de advertencias: URL en Acrobat sólo se admiten en Acrobat 9.0 y posterior. Así que si alguien está utilizando una versión anterior de Acrobat abre el formulario, las direcciones URL no funcionarán.

Además, como se puede ver en el "si (xfa.host.name! ... =)" línea, este código no funcionará correctamente si se genera el formulario en el servidor, porque forzar una re el diseño de un formulario durante docReady puede causar problemas en ciertas versiones anteriores del servidor LiveCycle. Si es necesario ejecutar este script en el servidor, probablemente debería elegir un evento diferente a continuación, forman :: docReady.

Otros consejos

una serie de quejas de los usuarios en el área de trabajo que los enlaces clic en ellos abren en la misma pestaña para que perdieron su forma de espacio de trabajo, y no hay ninguna opción para cambiar eso en Designer 11. Creo que la solución que se le ocurrió para que lo haría trabajar para usted también.

Me hizo botones sin fronteras y sin fondo, y en su evento click tener esta línea (en Javascript, ejecute en el cliente)

app.launchURL("http:/stackoverflow.com/", true);

Sería fácil añadir un poco de lógica para elegir la dirección URL correcta basada en el día y no causa ninguna forma re-representación.

En algunos lugares donde el hipervínculo está en línea con otro texto, dejo el texto del link azul y subrayado, pero sin hipervínculo, y basta con colocar el botón (sin fondo, sin fronteras, sin título) sobre ella. Qué exige subformularios emanado posicionados y no para los que trabajar, así que dependiendo de su diseño podría ser un poco torpe.

Vaya, acabo de dar cuenta que soy muy tarde a la fiesta. Bueno, para cualquier persona que utilice ES4 enfrenta a un problema similar. . .

acabaron utilizando un componente de tercera parte para manipular hipervínculos del PDF ... me gustaría que hubiese una mejor solución como ésta cuesta alrededor de $ 1000.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top