[{"data":1,"prerenderedAt":1153},["ShallowReactive",2],{"kb-manual-webforms":3,"kb-siblings-manual-webforms":1007},{"id":4,"title":5,"articleOrder":6,"body":7,"categories":986,"date":988,"description":989,"descriptionEdited":990,"draft":990,"extension":991,"knowledgeBase":992,"meta":993,"navigation":994,"order":995,"originalId":996,"originalUrl":997,"path":998,"readingTime":999,"seo":1000,"slug":1001,"stem":1002,"subcategory":987,"subcategoryOrder":1003,"tags":1004,"updated":1005,"__hash__":1006},"kb\u002Fkb\u002Fmanual-webforms.md","Manual para la generación de Formularios – WebForms",8,{"type":8,"value":9,"toc":934},"minimark",[10,15,19,22,47,51,85,89,92,100,111,114,124,128,135,140,163,168,179,183,195,200,206,210,225,229,235,239,243,249,254,260,269,319,325,329,332,335,339,345,349,352,356,362,366,369,373,379,383,386,390,393,397,403,407,410,414,420,424,427,431,434,438,444,448,451,455,461,465,468,472,478,482,485,489,492,496,502,505,508,512,518,522,525,529,532,535,539,545,548,551,555,561,564,567,571,577,580,583,587,593,596,599,603,609,612,615,619,625,628,631,635,641,644,647,681,685,691,696,702,705,708,712,718,721,726,732,736,739,742,745,749,755,758,764,767,770,773,776,780,785,788,791,794,797,802,808,814,819,825,828,831,835,841,844,848,851,854,858,864,867,870,873,887,891,896,900,903,906,909,913,919,922,925,928,931],[11,12,14],"h2",{"id":13},"introducción","Introducción",[16,17,18],"p",{},"Mediante la integración del complemento WebForm podrás cumplimentar formularios web antes de firmarlos.",[16,20,21],{},"WebForm es una librería que permite a los usuarios transformar datos en formato JSON en documentos HTML interactivos, es decir en formularios web, para posteriormente, convertir esos archivos HTML en documentos PDF listos para su distribución. Esta librería viene integrada en los siguientes productos de edatalia:",[23,24,25,29,32],"ul",{},[26,27,28],"li",{},"SIGNply Corporate",[26,30,31],{},"API firmar.online (para incluir un formulario en una llamada desde la API).",[26,33,34,41,42,46],{},[35,36,40],"a",{"href":37,"rel":38},"https:\u002F\u002Fapp.firmar.online\u002F",[39],"nofollow","app.firmar.online"," Opción ",[43,44,45],"em",{},"Plantillas",", (generación y edición de formularios PDF).",[11,48,50],{"id":49},"características","Características",[52,53,54,61,67,73,79],"ol",{},[26,55,56,60],{},[57,58,59],"strong",{},"Conversión de JSON a HTML",": Importa datos en formato JSON y transforma automáticamente estos datos en páginas HTML interactivas, (formularios web).",[26,62,63,66],{},[57,64,65],{},"Personalización del archivo JSON",": La aplicación permite al usuario añadir estilos, imágenes, separadores, así como todo tipo de inputs y bloques de tipo texto.",[26,68,69,72],{},[57,70,71],{},"Generación de PDF de alta calidad",": Con un clic, los usuarios pueden convertir sus documentos HTML en archivos PDF listos para firmar.",[26,74,75,78],{},[57,76,77],{},"Firma Digital Segura",": La característica de firma digital permite a los usuarios firmar ese documento PDF generado.",[26,80,81,84],{},[57,82,83],{},"Integración de JSON en el proceso de firma",": A través de nuestros servicios API REST, se puede realizar una integración nativa.",[11,86,88],{"id":87},"integración-de-webforms-en-la-api","Integración de webforms en la API",[16,90,91],{},"La utilización de los webforms se realiza mediante un JSON que va a indicar al proceso de firma como tiene que ser esta página HTML que se muestra al firmante. En el punto 4 de este documento, puedes consultar los campos válidos que se pueden utilizar así como su función.",[16,93,94,95,99],{},"En la url ",[35,96,97],{"href":97,"rel":98},"https:\u002F\u002Frestapi.firmar.online\u002Findex.html",[39]," tienes una descripción completa del servicio con los métodos de creación de sobres. A grandes rasgos, son métodos de tipo POST que envían información sobre el proceso de firma. En concreto, se puede observar un ejemplo en el método \u002FPSC\u002Fv40\u002FDocumentSet, agrupando la información en tres grandes apartados:",[23,101,102,105,108],{},[26,103,104],{},"Información de tipo general. En el que se incluyen datos como la caducidad, el método de envío, acceso y recordatorio.",[26,106,107],{},"Información de los firmantes. Referentes a quien es la persona a la que se va enviar el documento a firmar.",[26,109,110],{},"Información sobre los documentos a firmar. En este bloque es donde se ubicaría el json que queremos envíar. Para ello se utiliza el schema Form",[16,112,113],{},"En el enlace:",[16,115,116,120,123],{},[35,117,118],{"href":118,"rel":119},"https:\u002F\u002Fdocumenter.getpostman.com\u002Fview\u002F9780542\u002FTVmHDetH#9de39ffb-40d7-4ab4-9223-39921bc29244",[39],[121,122],"br",{},"\nEstá disponible una colección de postman con ejemplos de webforms para facilitar la comprensión e integración de la misma. Se encuentra agrupada en la carpeta “Formularios web”",[11,125,127],{"id":126},"estructura-del-formulario-según-caso-de-uso","Estructura del Formulario Según Caso de Uso",[16,129,130,131,134],{},"⚠️ ",[57,132,133],{},"IMPORTANTE",": La estructura del formulario variará dependiendo de para qué se vaya a utilizar:",[136,137,139],"h3",{"id":138},"para-signply-corporate","Para SIGNply Corporate",[16,141,142,143,146,147,150,151,154,155,158,159,162],{},"La estructura ",[57,144,145],{},"NO"," deberá contener ni el ",[43,148,149],{},"name"," ni el ",[43,152,153],{},"form",", en cambio ",[57,156,157],{},"SÍ"," deberá contener el ",[43,160,161],{},"widget",".",[16,164,165],{},[57,166,167],{},"Ejemplo con estructura simple:",[169,170,175],"pre",{"className":171,"code":173,"language":174},[172],"language-text","{  \"widget\": {    ...  },  \"generalStyles\": {    ...  },  \"pages\": [    {      \"items\": [        ...      ]    }  ]}\n","text",[176,177,173],"code",{"__ignoreMap":178},"",[136,180,182],{"id":181},"para-realizar-una-llamada-desde-la-api","Para realizar una llamada desde la API",[16,184,185,186,146,188,150,190,150,192,194],{},"La estructura del formulario ",[57,187,145],{},[43,189,149],{},[43,191,153],{},[43,193,161],{},", puesto que ya vienen en la llamada API.",[16,196,197],{},[57,198,199],{},"Ejemplo de llamada API con formulario webform incluido:",[169,201,204],{"className":202,"code":203,"language":174},[172],"{\n    \"documentSetName\": \"NOMBRE DEL DOCUMENTO\",\n    \"sendermail\": \"EMAIL DEL REMITENTE\",   \"Sendername\": \"NOMBRE DEL REMITENTE\",\n    \"expirationDaysTimeout\": 1,\n    \"recipient\": {  \"name\": {{RecipientName_1}},   \"email\": {{RecipientEMail_1}},   \"cardId\": {{RecipientCardId_1}},   \"phoneNumber\": {{RecipientPhoneNumber_1}},\n        \"actionType\": 30,         \"authType\": 10,\n\n        \"widget\": {\n            \"customtext\": [ {\"text\": \"Firmado digitalmente\", \"fontSize\": 3 },  { \"text\": \"Fecha: ##TIMESTAMP##\", \"fontSize\": 2 } ],\n            \"page\": 99,   \"x\": 50,  \"y\": 10,   \"width\": 100, \"height\": 50         }\n    },\n    \"document\": {\n        \"name\": \"DOCUMENTO - {{$isoTimestamp}}\",\n        \"formValues\":  [\n             {\"id\": \"Solicitante_Nombre\", \"value\": \"VALOR POR DEFECTO\" }          \n            ],\n\"form\": {\n\n    \"generalStyles\": {...},\n    \"pages\": [\n    {\n        \"items\": [\n         ...\n        ]       \n    }    \n    ]\n    }\n    }\n}\n",[176,205,203],{"__ignoreMap":178},[136,207,209],{"id":208},"para-generar-una-plantilla-en-appfirmaronline","Para generar una plantilla en app.firmar.online",[16,211,212,213,215,216,219,220,222,223,162],{},"La estructura deberá tener el ",[43,214,149],{}," y el ",[43,217,218],{},"Form",", pero ",[57,221,145],{}," el ",[43,224,161],{},[16,226,227],{},[57,228,167],{},[169,230,233],{"className":231,"code":232,"language":174},[172],"{  \"name\": \"Nombre de la Plantilla\",  \"Form\": {    \"GeneralStyles\": {      ...    },    \"Pages\": [      {        \"Items\": [          ...        ]      }    ],    \"DataSets\": null  }}\n",[176,234,232],{"__ignoreMap":178},[11,236,238],{"id":237},"configuración-del-formulario-web","Configuración del formulario web",[136,240,242],{"id":241},"explicación-de-cada-campo","Explicación de cada campo",[16,244,245,248],{},[57,246,247],{},"«pages»",": Define el cuerpo del formulario, separándolo por páginas.",[16,250,251],{},[57,252,253],{},"Ejemplo:",[169,255,258],{"className":256,"code":257,"language":174},[172],"\"pages\": [\n  {\n    \"items\": [\n      ...\n    ]\n  }\n]\n",[176,259,257],{"__ignoreMap":178},[16,261,262,265,266,268],{},[57,263,264],{},"«generalStyles»",": Son los estilos por defecto que tendrá toda la página. Si queremos modificar algún elemento en concreto para ello tendremos que darle propiedades a ese elemento, con la propiedad css.",[121,267],{},"\nPor motivos de seguridad en la generación de formularios web, las propiedades CSS permitidas serán las siguientes:",[23,270,271,274,277,280,283,286,289,292,295,298,301,304,307,310,313,316],{},[26,272,273],{},"height",[26,275,276],{},"maxWidth",[26,278,279],{},"minWidth",[26,281,282],{},"align",[26,284,285],{},"float",[26,287,288],{},"marginTop",[26,290,291],{},"marginBottom",[26,293,294],{},"border",[26,296,297],{},"fontFamily",[26,299,300],{},"fontSize",[26,302,303],{},"color",[26,305,306],{},"backgroundColor",[26,308,309],{},"textAlign",[26,311,312],{},"padding",[26,314,315],{},"fontWeight",[26,317,318],{},"textDecoration",[16,320,321,324],{},[57,322,323],{},"“Items”",": Cada elemento que contiene el formulario, en cada uno se define el tipo (“type”) y sus propiedades. ",[11,326,328],{"id":327},"tipos-de-elementos-type","Tipos de elementos (type)",[136,330,331],{"id":331},"image",[16,333,334],{},"Generar un elemento de tipo imagen.",[16,336,337],{},[57,338,253],{},[169,340,343],{"className":341,"code":342,"language":174},[172],"{  \"type\": \"image\",  \"id\": \"logo\",  \"src\": \"data:image\u002Fpng;base64,iVBORw0KGgoAAAANSU\",  \"css\": { \"maxWidth\": \"50%\" }}\n",[176,344,342],{"__ignoreMap":178},[136,346,348],{"id":347},"headertext","headerText",[16,350,351],{},"Texto de cabecera o título.",[16,353,354],{},[57,355,253],{},[169,357,360],{"className":358,"code":359,"language":174},[172],"{  \"type\": \"headerText\",  \"label\": \"Ejemplo contrato de arrendamiento \",  \"css\": { \"color\": \"#0b66a3\" },  \"id\": \"titulo_documento\"}\n",[176,361,359],{"__ignoreMap":178},[136,363,365],{"id":364},"paragraphtext","paragraphText",[16,367,368],{},"Párrafo de texto normal.",[16,370,371],{},[57,372,253],{},[169,374,377],{"className":375,"code":376,"language":174},[172],"{  \"type\": \"paragraphText\",  \"label\": \"Descripción del documento.\",  \"id\": \"descripcion\"}\n",[176,378,376],{"__ignoreMap":178},[136,380,382],{"id":381},"continuoustext","continuousText",[16,384,385],{},"Texto continuo (sin salto de línea).",[136,387,389],{"id":388},"textfield","textField",[16,391,392],{},"Campo para entrada de texto.",[16,394,395],{},[57,396,253],{},[169,398,401],{"className":399,"code":400,"language":174},[172],"{  \"type\": \"textField\",  \"label\": \"Nombre completo: \",  \"id\": \"nombre_propietario\",  \"css\": { \"minWidth\": \"100px\" },  \"editable\": false,  \"value\": \"Fermín Martín\"}\n",[176,402,400],{"__ignoreMap":178},[136,404,406],{"id":405},"emailfield","emailField",[16,408,409],{},"Campo de entrada para email.",[16,411,412],{},[57,413,253],{},[169,415,418],{"className":416,"code":417,"language":174},[172],"{  \"type\": \"emailField\",  \"label\": \" Correo: \",  \"id\": \"correo_propietario\",  \"css\": { \"minWidth\": \"100px\", \"marginTop\": \"1rem\" },  \"editable\": false,  \"value\": \"ejemplo@gmail.com\"}\n",[176,419,417],{"__ignoreMap":178},[136,421,423],{"id":422},"numberfield","numberField",[16,425,426],{},"Campo de entrada para numero entero.",[136,428,430],{"id":429},"datefield","dateField",[16,432,433],{},"Campo de entrada para una fecha.",[16,435,436],{},[57,437,253],{},[169,439,442],{"className":440,"code":441,"language":174},[172],"{  \"type\": \"dateField\",  \"id\": \"incio_fecha\",  \"css\": { \"minWidth\": \"100px\" },  \"today\": true,  \"editable\": false}\n",[176,443,441],{"__ignoreMap":178},[136,445,447],{"id":446},"radiobutton","radioButton",[16,449,450],{},"Seleccionar entre varias opciones, definidas en la propiedad options.",[16,452,453],{},[57,454,253],{},[169,456,459],{"className":457,"code":458,"language":174},[172],"{  \"type\": \"radioButton\",  \"label\": \"¿Tiene mascotas?\",  \"css\": { \"marginTop\": \"1rem\", \"marginBottom\": \"1rem\" },  \"options\": [    { \"value\": \"Si\", \"text\": \"SI\" },    { \"value\": \"No\", \"text\": \"NO\" }  ],  \"id\": \"mascotas\",  \"required\": true}\n",[176,460,458],{"__ignoreMap":178},[136,462,464],{"id":463},"linebreak","lineBreak",[16,466,467],{},"Genera un salto de línea invisible.",[16,469,470],{},[57,471,253],{},[169,473,476],{"className":474,"code":475,"language":174},[172],"{  \"type\": \"lineBreak\"}\n",[176,477,475],{"__ignoreMap":178},[136,479,481],{"id":480},"barbreak","barBreak",[16,483,484],{},"Genera un salto de línea, marcado por una línea horizontal visible.",[136,486,488],{"id":487},"pagebreak","pageBreak",[16,490,491],{},"Divide páginas del pdf.",[16,493,494],{},[57,495,253],{},[169,497,500],{"className":498,"code":499,"language":174},[172],"{  \"type\": \"pageBreak\"}\n",[176,501,499],{"__ignoreMap":178},[136,503,504],{"id":504},"table",[16,506,507],{},"Elemento para crear tablas, va acompañado de la propiedad cells donde se le indican las filas y columnas.",[16,509,510],{},[57,511,253],{},[169,513,516],{"className":514,"code":515,"language":174},[172],"{  \"type\": \"table\",  \"cells\": {    \"th\": [\"Encabezado 1\", \"Encabezado 2\", \"Encabezado 3\"],    \"tr\": [      { \"td\": [\"Dato 1\", \"Dato 2\", \"Dato 3\"] },      { \"td\": [\"Dato 4\", \"Dato 5\", \"Dato 6\"] }    ]  },  \"css\": { \"border\": \"black 3px solid\" }}\n",[176,517,515],{"__ignoreMap":178},[136,519,521],{"id":520},"dropdownfield","dropDownField",[16,523,524],{},"Genera un elemento de tipo select o dropdown, donde se le añade un dataSet para obtener la lista de valores.",[11,526,528],{"id":527},"propiedades-de-los-elementos","Propiedades de los elementos",[136,530,531],{"id":531},"label",[16,533,534],{},"El texto que recibe ese elemento.",[16,536,537],{},[57,538,253],{},[169,540,543],{"className":541,"code":542,"language":174},[172],"\"label\": \"Selecciona una de las opciones:\"\n",[176,544,542],{"__ignoreMap":178},[136,546,547],{"id":547},"id",[16,549,550],{},"El identificador que recibe ese elemento.",[16,552,553],{},[57,554,253],{},[169,556,559],{"className":557,"code":558,"language":174},[172],"\"id\": \"nombre_propietario\"\n",[176,560,558],{"__ignoreMap":178},[136,562,563],{"id":563},"value",[16,565,566],{},"El valor que quiera tener por defecto el elemento “input”.",[16,568,569],{},[57,570,253],{},[169,572,575],{"className":573,"code":574,"language":174},[172],"\"value\": \"Fermín Martín\"\n",[176,576,574],{"__ignoreMap":178},[136,578,579],{"id":579},"editable",[16,581,582],{},"Booleano para elegir si un elemento “input” es editable o no. (true o false), por defecto su valor es true.",[16,584,585],{},[57,586,253],{},[169,588,591],{"className":589,"code":590,"language":174},[172],"\"editable\": false\n",[176,592,590],{"__ignoreMap":178},[136,594,595],{"id":595},"required",[16,597,598],{},"Booleano para elegir si un elemento “input” es obligatorio o no para poder crear el pdf. (true o false), por defecto su valor es false.",[16,600,601],{},[57,602,253],{},[169,604,607],{"className":605,"code":606,"language":174},[172],"{  \"type\": \"textField\",  \"label\": \"Nombre completo: \",  \"id\": \"nombre_inquilino\",  \"css\": { \"minWidth\": \"100px\" },  \"required\": true}\n",[176,608,606],{"__ignoreMap":178},[136,610,611],{"id":611},"visible",[16,613,614],{},"Booleano para elegir si un elemento “input” es visible o no. (true o false), por defecto su valor es true.",[16,616,617],{},[57,618,253],{},[169,620,623],{"className":621,"code":622,"language":174},[172],"{  \"type\": \"radioButton\",  \"label\": \"Tamaño mascota:\",  \"css\": { \"marginTop\": \"1rem\", \"marginBottom\": \"1rem\" },  \"options\": [    { \"value\": \"Peq\", \"text\": \"Pequeño\" },    { \"value\": \"MeGr\", \"text\": \"Mediano\u002Fgrande\" }  ],  \"id\": \"tamaño_mascota\",  \"visible\": false,  \"required\": true}\n",[176,624,622],{"__ignoreMap":178},[136,626,627],{"id":627},"src",[16,629,630],{},"Indica ubicación de un documento externo, en este caso se debe añadir a una imagen en formato b64.",[16,632,633],{},[57,634,253],{},[169,636,639],{"className":637,"code":638,"language":174},[172],"\"src\": \"data:image\u002Fpng;base64,iVBORw0KGgoAAAANSU\"\n",[176,640,638],{"__ignoreMap":178},[136,642,643],{"id":643},"css",[16,645,646],{},"Propiedad que da estilo a los elementos. Por motivos de seguridad, las propiedades CSS permitidas serán las siguientes:",[23,648,649,651,653,655,657,659,661,663,665,667,669,671,673,675,677,679],{},[26,650,273],{},[26,652,276],{},[26,654,279],{},[26,656,282],{},[26,658,285],{},[26,660,288],{},[26,662,291],{},[26,664,294],{},[26,666,297],{},[26,668,300],{},[26,670,303],{},[26,672,306],{},[26,674,309],{},[26,676,312],{},[26,678,315],{},[26,680,318],{},[16,682,683],{},[57,684,253],{},[169,686,689],{"className":687,"code":688,"language":174},[172],"\"css\": { \"fontFamily\": \"Arial\", \"fontSize\": \"16px\" }\n",[176,690,688],{"__ignoreMap":178},[16,692,693],{},[57,694,695],{},"Ejemplo con múltiples propiedades:",[169,697,700],{"className":698,"code":699,"language":174},[172],"\"css\": { \"color\": \"#0b66a3\", \"marginTop\": \"3rem\" }\n",[176,701,699],{"__ignoreMap":178},[136,703,704],{"id":704},"options",[16,706,707],{},"Si el elemento es de tipo radioButton, dentro de esta propiedad se añadirán las opciones que queremos que salgan como radio button y su respectivo texto (“value”).",[16,709,710],{},[57,711,253],{},[169,713,716],{"className":714,"code":715,"language":174},[172],"\"options\": [  { \"value\": \"Opción1\", \"checked\": \"checked\" },  { \"value\": \"Opción2\" },  { \"value\": \"Opción3\" }]\n",[176,717,715],{"__ignoreMap":178},[16,719,720],{},"La propiedad de “checked” sirve para seleccionar una de las opciones por defecto.",[16,722,723],{},[57,724,725],{},"Ejemplo real:",[169,727,730],{"className":728,"code":729,"language":174},[172],"\"options\": [  { \"value\": \"Si\", \"text\": \"SI\" },  { \"value\": \"No\", \"text\": \"NO\" }]\n",[176,731,729],{"__ignoreMap":178},[136,733,735],{"id":734},"verticaloptions","verticalOptions",[16,737,738],{},"Esta propiedad es un booleano (true o false) que se usa para poner las opciones de radioButton en vertical, por defecto su valor es false.",[136,740,741],{"id":741},"actions",[16,743,744],{},"Esta propiedad se utiliza para desbloquear nuevos campos de texto que en un principio estaban ocultos. Por ejemplo si queremos que un texto aparezca solo si seleccionamos una de las opciones de un radio button previamente.",[16,746,747],{},[57,748,253],{},[169,750,753],{"className":751,"code":752,"language":174},[172],"{  \"type\": \"radioButton\",  \"label\": \"¿Tiene mascotas?\",  \"css\": { \"marginTop\": \"1rem\", \"marginBottom\": \"1rem\" },  \"options\": [    { \"value\": \"Si\", \"text\": \"SI\" },    { \"value\": \"No\", \"text\": \"NO\" }  ],  \"id\": \"mascotas\",  \"actions\": [    { \"relatedid\": \"tamaño_mascota\", \"value\": \"Si\", \"visible\": true },    { \"relatedid\": \"tamaño_mascota\", \"value\": \"No\", \"visible\": false }  ],  \"required\": true}\n",[176,754,752],{"__ignoreMap":178},[16,756,757],{},"Esta propiedad se le añade al input que debemos hacer clic para que se desglose el input oculto, asociándolo con el id de ese respectivo input y con el valor que debemos de clicar para que se realice la acción.",[16,759,760,763],{},[57,761,762],{},"El valor de relatedId puede ser un único string o un array de string",", por si queremos realizar la misma acción sobre múltiples ids.",[16,765,766],{},"En este ejemplo, tenemos un radio button asociado a otro radio button con el id : “tamaño_mascota” y el valor “SI”. En caso de que en el primer radio seleccionemos la opción “SI”, el radio button con el id “tamaño_mascota” se pondrá en visible. Además se le añadirán las opciones que pongamos, por ejemplo, required: true y visible: true hará que el elemento a mostrar venga con esos atributos.",[16,768,769],{},"Por defecto, el elemento asociado deberá tener la propiedad “visible”: false.",[136,771,772],{"id":772},"today",[16,774,775],{},"Booleano para elegir si un elemento “input” de tipo “date” tiene seleccionada por defecto la fecha de hoy, (true o false), su valor predeterminado es false.",[16,777,778],{},[57,779,253],{},[169,781,783],{"className":782,"code":441,"language":174},[172],[176,784,441],{"__ignoreMap":178},[136,786,787],{"id":787},"pattern",[16,789,790],{},"Patrón para validar el formato de un input, como un dni, cp…",[16,792,793],{},"No valida el contenido, en el dni\u002Fnie no se valida la letra, solo que el formato sea correcto.",[16,795,796],{},"Puedes encontrarlos ya creados buscando en internet o crearlos tú mismo.",[16,798,799],{},[57,800,801],{},"Ejemplo patrón de DNI\u002FNIE:",[169,803,806],{"className":804,"code":805,"language":174},[172],"\"pattern\": \"[a-zA-Z0-9]+\"\n",[176,807,805],{"__ignoreMap":178},[169,809,812],{"className":810,"code":811,"language":174},[172],"\"pattern\": \"^(?:[0-9]{8}[a-zA-Z]|[XYZ][0-9]{7}[a-zA-Z])$\"\n",[176,813,811],{"__ignoreMap":178},[16,815,816],{},[57,817,818],{},"Ejemplo patrón de CP:",[169,820,823],{"className":821,"code":822,"language":174},[172],"\"pattern\": \"[0-9]{3}-[0-9]{2}-[0-9]{3}\"\n",[176,824,822],{"__ignoreMap":178},[136,826,827],{"id":827},"rules",[16,829,830],{},"Este atributo sirve para hacer validaciones más complejas a un elemento de tipo input. En él se indica que validación se le quiere hacer indicando el nombre específico de esa validación y automáticamente la adquiere.",[16,832,833],{},[57,834,253],{},[169,836,839],{"className":837,"code":838,"language":174},[172],"{  \"type\": \"textField\",  \"label\": \" DNI\u002FNIE: \",  \"id\": \"dni_inquilino\",  \"css\": { \"minWidth\": \"100px\" },  \"rules\": \"NIFNIE\"}\n",[176,840,838],{"__ignoreMap":178},[16,842,843],{},"Valida un NIF\u002FNIE de manera que sea correcto.",[136,845,847],{"id":846},"getvaluesof","getValuesOf",[16,849,850],{},"Este atributo se utiliza para coger el valor de otro elemento input asociados por su ID de forma dinámica, si el valor de elemento input cambia, también lo hace este.",[16,852,853],{},"Ejemplo de uso: Supongamos que contamos con un campo de entrada (input) identificado como «edad» y deseamos que esta información se refleje en varios elementos distintos. Para lograr esto, simplemente agregamos el atributo getValuesOf:»edad» a dichos elementos, estableciendo así una conexión entre el identificador «edad» y cada uno de estos elementos.",[16,855,856],{},[57,857,253],{},[169,859,862],{"className":860,"code":861,"language":174},[172],"{  \"type\": \"headerText\",  \"getValuesOf\": \"edad\"}\n",[176,863,861],{"__ignoreMap":178},[16,865,866],{},"Este headerText coge el valor del input con id “edad”.",[136,868,869],{"id":869},"cells",[16,871,872],{},"Propiedad obligatoria si usamos el elemento “table”, con ella indicamos las filas y columnas que tendrá nuestra tabla.",[23,874,875,881],{},[26,876,877,880],{},[57,878,879],{},"th",": Son los titulares o encabezados de las columnas, irán resaltados en negrita.",[26,882,883,886],{},[57,884,885],{},"tr",": Son las filas de la tabla dentro tiene los td que son las celdas que quieras que tenga cada fila.",[16,888,889],{},[57,890,253],{},[169,892,894],{"className":893,"code":515,"language":174},[172],[176,895,515],{"__ignoreMap":178},[136,897,899],{"id":898},"dataset","dataSet",[16,901,902],{},"Este atributo indica a qué lista de datos quieres hacer referencia para obtenerlos. Se utiliza con el elemento dropDownField.",[16,904,905],{},"Por ejemplo dataSet: “divisas”. El componente dropDownField se rellenará con los valores de divisas.",[16,907,908],{},"Este dataSet recogerá los datos de nuestros dataSets indicados fuera de la estructura del formulario, a la altura de generalStyles y tendrá esta estructura.",[16,910,911],{},[57,912,253],{},[169,914,917],{"className":915,"code":916,"language":174},[172],"\"dataSets\": [  {    \"key\": \"provincias\",    \"values\": [      { \"value\": \"001\", \"text\": \"Bizkaika\" },      { \"value\": \"002\", \"text\": \"Madrid\" },      { \"value\": \"003\", \"text\": \"Granada\" }    ]  }]\n",[176,918,916],{"__ignoreMap":178},[136,920,921],{"id":921},"search",[16,923,924],{},"Esta propiedad booleana se le añade al componente dropDownField si quieres que tenga un buscador incorporado.",[136,926,927],{"id":927},"checked",[16,929,930],{},"Propiedad que sirve para indicar a un dropDownField que dato va a estar seleccionado por defecto.",[16,932,933],{},"Por ejemplo en provincias, del ejemplo de arriba, si escribimos checked:“001”, cogerá por defecto el valor Bizkaia.",{"title":178,"searchDepth":935,"depth":935,"links":936},2,[937,938,939,940,946,949,965],{"id":13,"depth":935,"text":14},{"id":49,"depth":935,"text":50},{"id":87,"depth":935,"text":88},{"id":126,"depth":935,"text":127,"children":941},[942,944,945],{"id":138,"depth":943,"text":139},3,{"id":181,"depth":943,"text":182},{"id":208,"depth":943,"text":209},{"id":237,"depth":935,"text":238,"children":947},[948],{"id":241,"depth":943,"text":242},{"id":327,"depth":935,"text":328,"children":950},[951,952,953,954,955,956,957,958,959,960,961,962,963,964],{"id":331,"depth":943,"text":331},{"id":347,"depth":943,"text":348},{"id":364,"depth":943,"text":365},{"id":381,"depth":943,"text":382},{"id":388,"depth":943,"text":389},{"id":405,"depth":943,"text":406},{"id":422,"depth":943,"text":423},{"id":429,"depth":943,"text":430},{"id":446,"depth":943,"text":447},{"id":463,"depth":943,"text":464},{"id":480,"depth":943,"text":481},{"id":487,"depth":943,"text":488},{"id":504,"depth":943,"text":504},{"id":520,"depth":943,"text":521},{"id":527,"depth":935,"text":528,"children":966},[967,968,969,970,971,972,973,974,975,976,977,978,979,980,981,982,983,984,985],{"id":531,"depth":943,"text":531},{"id":547,"depth":943,"text":547},{"id":563,"depth":943,"text":563},{"id":579,"depth":943,"text":579},{"id":595,"depth":943,"text":595},{"id":611,"depth":943,"text":611},{"id":627,"depth":943,"text":627},{"id":643,"depth":943,"text":643},{"id":704,"depth":943,"text":704},{"id":734,"depth":943,"text":735},{"id":741,"depth":943,"text":741},{"id":772,"depth":943,"text":772},{"id":787,"depth":943,"text":787},{"id":827,"depth":943,"text":827},{"id":846,"depth":943,"text":847},{"id":869,"depth":943,"text":869},{"id":898,"depth":943,"text":899},{"id":921,"depth":943,"text":921},{"id":927,"depth":943,"text":927},[987],"Tutoriales","2023-12-01","Introducción Mediante la integración del complemento WebForm podrás cumplimentar formularios web antes de firmarlos. WebForm es una…",false,"md","firmar.online",{},true,null,8250,"https:\u002F\u002Fedatalia.com\u002Fkb\u002Fmanual-webforms\u002F","\u002Fkb\u002Fmanual-webforms",10,{"title":5,"description":989},"manual-webforms","kb\u002Fmanual-webforms",1,[],"2026-01-22","qBwJfeKv0jlGEB8gFbpYnx7tS35pNcMqC7CWpal3UqU",[1008,1011,1014,1017,1020,1023,1026,1029,1032,1035,1038,1041,1044,1047,1050,1053,1056,1059,1062,1065,1068,1071,1074,1077,1080,1083,1086,1089,1092,1095,1098,1101,1104,1105,1108,1111,1114,1117,1120,1123,1126,1129,1132,1135,1138,1141,1144,1147,1150],{"slug":1009,"title":1010},"accion-requerida-al-firmante-en-procesos-de-firma-electronica-remota","Acción requerida al firmante en procesos de firma electrónica remota",{"slug":1012,"title":1013},"adjuntar-documentos","Adjuntar documentos",{"slug":1015,"title":1016},"al-abrir-un-documento-firmado-con-adobe-me-dice-que-la-firma-no-se-ha-verificado","Al abrir un documento firmado con Adobe me dice que la firma no se ha verificado",{"slug":1018,"title":1019},"api-rest-40","API REST 40",{"slug":1021,"title":1022},"autenticacion-de-firmantes-en-procesos-de-firma-electronica-remota","Autenticación de firmantes en procesos de firma electrónica remota",{"slug":1024,"title":1025},"caduco-el-certificado-en-los-los-documentos-que-se-firmaron-no-aparece-el-mensaje-firmado-y-todas-las-firmas-son-validas","Caducó el certificado. En los los documentos que se firmaron no aparece el mensaje “Firmado y todas las firmas son válidas”",{"slug":1027,"title":1028},"captura-de-firma-digital-comparativa-entre-dispositivos","Captura de Firma Digital: Comparativa entre Dispositivos",{"slug":1030,"title":1031},"codigos-de-trazabilidad","Códigos de trazabilidad",{"slug":1033,"title":1034},"combinacion-de-correspondencia","Envíos mediante Lotes (Combinación de correspondencia)",{"slug":1036,"title":1037},"como-adquirir-o-renovar-un-certificado-de-firma","¿Cómo adquirir o renovar un certificado de firma?",{"slug":1039,"title":1040},"como-conseguir-una-firma-ltv","Cómo conseguir una firma LTV",{"slug":1042,"title":1043},"como-se-ve-la-firma-digital-en-el-documento-pdf","Como se ve la firma digital en el documento PDF",{"slug":1045,"title":1046},"como-solucionar-la-compatibilidad-de-google-chrome-para-conexiones-seguras-tls-1-0-y-1-1-al-utilizar-el-flujo-web-error-err-ssl-obsolete-version","Cómo solucionar la compatibilidad de Google Chrome para conexiones seguras TLS 1.0 y 1.1 al utilizar el flujo web (error ERR_SSL_OBSOLETE_VERSION)",{"slug":1048,"title":1049},"descarga-masiva","Descarga masiva: Descarga de los documentos firmados y de la trazabilidad de los envíos",{"slug":1051,"title":1052},"descargas","Descarga del esquema de funcionalidades de firmar.online",{"slug":1054,"title":1055},"documentos-recibidos","Documentos recibidos: Firma de documentos por parte del usuario",{"slug":1057,"title":1058},"el-firmante-no-recibe-el-email-para-acceder-a-firmar-un-documento","El firmante no recibe el email para acceder a firmar un documento",{"slug":1060,"title":1061},"el-firmante-no-recibe-el-sms-en-su-telefono-para-firmar","El firmante no recibe el SMS en su teléfono para firmar",{"slug":1063,"title":1064},"equipos","Gestión de equipos y usuarios",{"slug":1066,"title":1067},"es-posible-realizar-firmas-pades-ltv-con-certificados-de-la-fabrica-nacional-de-moneda-y-timbre","¿Es posible realizar firmas PADES-LTV con certificados de la Fabrica Nacional de Moneda y Timbre?",{"slug":1069,"title":1070},"firma-corporativa","Firma corporativa",{"slug":1072,"title":1073},"firma-en-tabletas-ios-y-android","Firma en Tabletas (iOS, Android y Wacom)",{"slug":1075,"title":1076},"firma-presencial","Firma Presencial",{"slug":1078,"title":1079},"firma-remota","Pantalla Inicial: Menú de Aplicaciones",{"slug":1081,"title":1082},"firma-remota-notificaciones","Firma Remota – notificaciones",{"slug":1084,"title":1085},"firmar-online-presentacion","Presentación firmar.online",{"slug":1087,"title":1088},"firmar-un-documento-ya-firmado","Firmar un documento ya firmado",{"slug":1090,"title":1091},"flujos","Flujos: Configuración predeterminada de envíos",{"slug":1093,"title":1094},"guia-de-productos-edatalia","Guía de Productos Edatalia",{"slug":1096,"title":1097},"guia-rapida-de-integracion-para-la-firma-presencial","Guía rápida de integración para la Firma Presencial",{"slug":1099,"title":1100},"iniciar-sesion-2","Registro y acceso a firmar.online",{"slug":1102,"title":1103},"la-firma-digital-manuscrita-requiere-instalacion-en-dispositivo","¿La firma digital manuscrita requiere instalación en dispositivo?",{"slug":1001,"title":5},{"slug":1106,"title":1107},"metodos-de-autenticacion","Métodos de autenticación",{"slug":1109,"title":1110},"metodos-de-envio","Métodos de envío",{"slug":1112,"title":1113},"metodos-de-firma","Métodos de firma",{"slug":1115,"title":1116},"modificacion-de-un-documento-firmado","Modificación de un documento firmado",{"slug":1118,"title":1119},"perfil","Mi Perfil",{"slug":1121,"title":1122},"perfil-de-usuario","Herramientas: Firma digital, sellado de tiempo y validación de firmas",{"slug":1124,"title":1125},"plantilla-estandar-en-los-correos-de-firmar-online","Plantillas pre-formateadas en los correos de firmar.online",{"slug":1127,"title":1128},"porque-no-puedo-firmar-un-documento-certificado-o-certificar-un-documento-anteriormente-firmado","¿Porqué no puedo firmar un documento certificado o certificar un documento anteriormente firmado?",{"slug":1130,"title":1131},"porque-se-muestra-en-distinto-formato-la-hora-en-la-ventana-propiedades-de-la-firma-de-adobe-y-en-el-widget-de-la-firma","¿Porqué se muestra en distinto formato la hora en la ventana Propiedades de la firma de Adobe y en el Widget de la firma?",{"slug":1133,"title":1134},"puedo-ver-las-firmas-contenidas-en-un-pdf-con-el-visor-del-navegador","¿Puedo ver las firmas contenidas en un PDF con el visor del navegador?",{"slug":1136,"title":1137},"que-caracteristicas-debe-cumplir-un-documento-pdf-para-poder-ser-firmado-segun-los-estandares-de-adobe","¿Qué características debe cumplir un documento PDF para poder ser firmado según los estándares de Adobe?",{"slug":1139,"title":1140},"que-es-el-token","¿Qué es el token?",{"slug":1142,"title":1143},"seguimiento-de-envios-en-firmar-online","Seguimiento de envíos en firmar.online",{"slug":1145,"title":1146},"servicios-avanzados-de-firma","Servicios avanzados de firma",{"slug":1148,"title":1149},"solicitud-de-documentacion-anexa-al-firmante","Solicitud de documentación anexa al firmante",{"slug":1151,"title":1152},"webhook-de-firma-digital","Webhook de firma digital",1780912528023]