2010-03-10 61 views
8

Estoy usando FDF para completar una plantilla en PDF. En mi plantilla PDF, tengo una casilla de verificación y un campo de radio llamados c1 y r1, respectivamente. ¿Cuál es la sintaxis que debería usar en mi archivo FDF para verificar o seleccionar el campo c1 y r1?FDF: cómo marcar una casilla de verificación?

he intentado cosas como

<</T(c1)/V(1)>> 
<</T(c1)/V(checked)>> 
<</T(c1)/V(on)>> 
<</T(c1)/V(true)>> 

Pero ninguno de ellos trabajan.

Respuesta

17

Encontré la respuesta. Para comprobarlo, usar

<</T(c1)/V(Yes)>> 

Para apagar, utilizo

<</T(c1)/V(Off)>> 

he encontrado la respuesta en esta página: http://www.4dcodeexchange.net/fdfformbuilder.htm

Extracto

Las casillas de verificación vienen en 2 sabores agrupadas e individual. Las casillas de verificación individuales generalmente tendrán un valor de "Sí" o "Desactivado". Las casillas de verificación agrupadas son diferentes en que cada casilla de verificación tendrá tiene su propio valor. Si tiene problemas con su FDF, mire aquí primero.

+6

"Sí" y "Desactivado" ¡Hah! – newslacker

+1

¿Qué pasa con FileNotFound? –

+0

Se debe notar aquí que 'Sí' es solo una forma recomendada (PDF spec, pág 648) para marcar una casilla de verificación y no una segura. Aunque probablemente funcionará para todas las formas creadas con Acrobat. – maryisdead

-1

Sí De Java también podemos pasar valor "Sí" para comprobar la casilla de verificación en formato PDF o FDF gracias .... Rachit Shah

9

sólo para hacer una precisión. Parece que para marcar una casilla de verificación individual necesita usar el valor de exportación que estableció al crear su cuadro en Acrobat. Este valor es, de hecho, por defecto a "Sí"

+1

¡Esta debería ser la respuesta aceptada! –

+0

+1000 Salvó mi día por completo. Creo que esta es la única buena respuesta en internet. – Xatenev

0

Para mí funciona:

<</T(c1)/V(0)>> 

para valores controladas y

<</T(c1)/V(Off)>> 

los valores por defecto.

6

El valor que se pasa para marcar la casilla suele ser "Sí" y "Desactivado" - Sin embargo, este es solo el valor predeterminado y se puede cambiar de "Sí" a casi cualquier valor (esto está controlado por el valor de exportación del documento, como lo señalaron otros).

Si está buscando obtener el valor de estado on/checked (que deberá configurar confiablemente esta casilla de verificación como comprobado), se encuentra en el diccionario de apariciones "AP" del campo. Ese diccionario debe contener otro diccionario "N", y cada clave es uno de dos valores para la casilla de verificación. La primera clave será el valor no seleccionado (por lo general, "Desactivado") y la segunda clave será el valor verificado (por lo general, "Sí"). Cómo se hace esto depende completamente de la API.

Si usa pdftk desde la línea de comandos, puede ver cuáles son los valores esperados utilizando el comando dump_data_fields: Ej.

pdftk document.pdf dump_data_fields 

mostrará algo como esto:

--- 
FieldType: Button 
FieldName: basform 
FieldFlags: 0 
FieldValue: No 
FieldJustification: Left 
FieldStateOption: Off 
FieldStateOption: basic_forms   <---- Checked value expected by FDF 

Aquí podemos ver que el estado del control se esperaba "basic_forms" y no "Sí". Creo que el otro estado siempre está "apagado", pero eso puede depender del idioma que esté usando su programa (el valor "Sí" predeterminado sí lo hace).

+0

Esta respuesta no maneja la pregunta sobre FDF directamente, pero es la más informativa. Explica dónde se almacenan los valores correctos para los estados marcados y no comprobados en el PDF, lo que es útil si desea escribir su propio analizador. Pero tengo que hacer una pequeña corrección: la primera entrada en el diccionario/AP/N no siempre es '/ Off', en mi PDF es la segunda. – StanE

Cuestiones relacionadas