{"id":2632,"date":"2024-08-14T12:54:49","date_gmt":"2024-08-14T10:54:49","guid":{"rendered":"http:\/\/agilno.local\/?p=2632"},"modified":"2024-09-25T12:54:30","modified_gmt":"2024-09-25T10:54:30","slug":"pdf-signing-and-form-filling-in-react","status":"publish","type":"post","link":"https:\/\/makeit.com.hr\/agilno\/blog\/pdf-signing-and-form-filling-in-react\/","title":{"rendered":"PDF Signing in React"},"content":{"rendered":"<p><span style=\"font-weight: 400;\">At Agilno, we pride ourselves on delivering innovative and efficient solutions tailored to meet the specific needs of our clients. One of the challenges we\u2019ve encountered is handling PDF signing and form filling within applications. Today, we want to share our experience with using SimplePDF to streamline these tasks directly within your web app, enhancing user experience and maintaining control over your data.<\/span><\/p>\n<h2><b>Why Handle PDF Signing and Form Filling In-App?<\/b><\/h2>\n<p><span style=\"font-weight: 400;\">Handling PDF signing and form filling within your application offers several advantages over redirecting users to third-party sites or apps. Here\u2019s why integrating this functionality directly into your app is a superior choice:<\/span><\/p>\n<h3><b>Advantages of In-App PDF Handling:<\/b><\/h3>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\"><strong>Enhanced User Experience:<\/strong> Users can complete tasks without leaving your application, reducing friction and improving overall satisfaction. A seamless experience keeps users engaged and more likely to complete the necessary actions.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\"><strong>Increased Security:<\/strong> By handling documents within your app, you maintain control over data security, reducing risks associated with third-party data breaches. Sensitive information remains within your ecosystem, adhering to your security protocols.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\"><strong>Customization and Branding:<\/strong> Integrating PDF handling allows for consistent branding and customization, aligning with your application\u2019s design and user interface. Maintain a professional look and feel without the interruption of third-party interfaces.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\"><strong>Data Control and Storage:<\/strong> Direct integration enables using S3 buckets as an efficient data storage solution, ensuring easy access and management of signed documents. Keep a comprehensive record of all documents within your database, simplifying retrieval and auditing processes.<\/span><\/li>\n<\/ul>\n<h3><b>Potential Drawbacks:<\/b><\/h3>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\"><strong>Initial Setup and Maintenance:<\/strong> Implementing PDF handling features requires initial development time and resources. Ongoing maintenance is necessary to ensure the functionality remains up-to-date and secure.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\"><strong>Complexity for Non-Technical Users:<\/strong> Users who are not tech-savvy might face a learning curve when using new in-app features, though this can be mitigated with intuitive design and thorough user guides.<\/span><\/li>\n<\/ul>\n<h2><b>About the NAITUR Project<\/b><\/h2>\n<p><span style=\"font-weight: 400;\">NAITUR is a dashboard platform that enables psychedelic practitioners and their therapists to document their experiences after using psychedelics. The goal is to provide researchers and therapists with a better understanding of psychedelics\u00a0 through the collected data. The documentation of the experiences is done by filling out forms and documents on the user side and reviewing\/confirming them on the therapist&#8217;s side of the app.<\/span><\/p>\n<h2><b>SimplePDF Implementation in NAITUR Project<\/b><\/h2>\n<p><span style=\"font-weight: 400;\">NAITUR platform needed a comprehensive solution for handling PDF documents within their web application. Their requirements included both a user and a therapist side, each with specific functionalities.<\/span><\/p>\n<h3><b>Requirements:<\/b><\/h3>\n<p><span style=\"font-weight: 400;\"><strong>Therapist Side:<\/strong> Therapists needed the ability to upload PDF files, store them in the database, review edited files, and further edit and sign them after the users.<\/span><\/p>\n<p><span style=\"font-weight: 400;\"><strong>User Side:<\/strong> Users needed to open the uploaded PDFs, fill out the forms, sign them, and re-upload the completed documents.<\/span><\/p>\n<h3><b>Solution:<\/b><\/h3>\n<p><span style=\"font-weight: 400;\">To meet NAITUR\u2019s requirements, we utilized SimplePDF along with its S3 bucket integration to create a seamless PDF handling process within their application.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Using SimplePDF, therapists could easily upload PDFs, securely store them in S3 buckets, and retrieve them for review, editing, and signing as needed. SimplePDF allows users to perform these tasks directly within the web app, without leaving the application.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">For enabling access of SimplePDF to our S3 bucket, we used the instructions provided by SimplePDF. The only change required was a modification to our bucket&#8217;s CORS configuration:<\/span><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-2634\" src=\"https:\/\/makeit.com.hr\/agilno\/wp-content\/uploads\/2024\/08\/image1-300x167.png\" alt=\"CORS configuration for PDF handling in React using SimplePDF with S3 bucket\" width=\"925\" height=\"515\" srcset=\"https:\/\/makeit.com.hr\/agilno\/wp-content\/uploads\/2024\/08\/image1-300x167.png 300w, https:\/\/makeit.com.hr\/agilno\/wp-content\/uploads\/2024\/08\/image1-1024x569.png 1024w, https:\/\/makeit.com.hr\/agilno\/wp-content\/uploads\/2024\/08\/image1-1536x853.png 1536w, https:\/\/makeit.com.hr\/agilno\/wp-content\/uploads\/2024\/08\/image1.png 1999w\" sizes=\"auto, (max-width: 925px) 100vw, 925px\" \/><\/p>\n<p><span style=\"font-weight: 400;\">Since we used NextJS to develop NAITUR&#8217;s Frontend, we embedded SimplePDF by using the EmbedPDF React component:<\/span><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">import { IUserDocument } from '@\/app\/types\/apiTypes';\r\nimport { useCallback, useRef } from 'react';\r\nimport { EmbedPDF, EmbedEvent } from '@simplepdf\/react-embed-pdf';\r\nimport { TOAST_MESSAGES } from '@\/app\/constants';\r\nimport { toast } from 'react-toastify';\r\nimport { useSelector } from 'react-redux';\r\nimport { RootState } from '@\/app\/store\/store';\r\nimport { useRouter } from 'next\/navigation';\r\n\r\ninterface IClientDocumentResponsesProps {\r\n\u00a0 selectedDocument: IUserDocument | null;\r\n\u00a0 adminUserDocument: IUserDocument | null;\r\n}\r\n\r\nconst ClientDocumentResponses = ({\r\n\u00a0 selectedDocument = null,\r\n\u00a0 adminUserDocument,\r\n}: IClientDocumentResponsesProps) =&gt; {\r\n\u00a0 const simplePDFAnchor = useRef&lt;HTMLAnchorElement&gt;(null);\r\n\r\n\u00a0 const currentUserId = useSelector(\r\n\u00a0 \u00a0 (state: RootState) =&gt; state.user.currentUser?.id\r\n\u00a0 );\r\n\u00a0 const selectedDocumentFileUrl =\r\n\u00a0 \u00a0 selectedDocument?.file_url || selectedDocument?.document.file;\r\n\r\n\u00a0 const router = useRouter();\r\n\r\n\u00a0 const handleEmbedEvent = useCallback(\r\n\u00a0 \u00a0 async (event: EmbedEvent) =&gt; {\r\n\u00a0 \u00a0 \u00a0 if (event.type === 'SUBMISSION_SENT') {\r\n\u00a0 \u00a0 \u00a0 \u00a0 toast.success(TOAST_MESSAGES.documentSubmitSuccess);\r\n\u00a0 \u00a0 \u00a0 \u00a0 router.back();\r\n\u00a0 \u00a0 \u00a0 }\r\n\u00a0 \u00a0 },\r\n\u00a0 \u00a0 [router]\r\n\u00a0 );\r\n\r\n\u00a0 return (\r\n\u00a0 \u00a0 &lt;EmbedPDF\r\n\u00a0 \u00a0 \u00a0 context={{\r\n\u00a0 \u00a0 \u00a0 \u00a0 documentId: selectedDocument?.document.id,\r\n\u00a0 \u00a0 \u00a0 \u00a0 userId: currentUserId,\r\n\u00a0 \u00a0 \u00a0 \u00a0 userDocumentId: adminUserDocument?.id,\r\n\u00a0 \u00a0 \u00a0 }}\r\n\u00a0 \u00a0 \u00a0 companyIdentifier={process.env.NEXT_PUBLIC_SIMPLE_PDF_IDENTIFIER}\r\n\u00a0 \u00a0 \u00a0 onEmbedEvent={handleEmbedEvent}\r\n\u00a0 \u00a0 &gt;\r\n\u00a0 \u00a0 \u00a0 &lt;a\r\n\u00a0 \u00a0 \u00a0 \u00a0 ref={simplePDFAnchor}\r\n\u00a0 \u00a0 \u00a0 \u00a0 href={selectedDocumentFileUrl as string}\r\n\u00a0 \u00a0 \u00a0 \u00a0 style={{ display: 'none' }}\r\n\u00a0 \u00a0 \u00a0 \u00a0 target='_blank'\r\n\u00a0 \u00a0 \u00a0 \u00a0 rel='noopener noreferrer'\r\n\u00a0 \u00a0 \u00a0 \u00a0 aria-hidden='true'\r\n\u00a0 \u00a0 \u00a0 &gt;&lt;\/a&gt;\r\n\u00a0 \u00a0 &lt;\/EmbedPDF&gt;\r\n\u00a0 );\r\n};\r\n\r\nexport default ClientDocumentResponses;<\/pre>\n<h2><b>Conclusion<\/b><\/h2>\n<p><span style=\"font-weight: 400;\">Integrating PDF signing and form filling directly into your web application using tools like SimplePDF offers significant benefits, including enhanced user experience, increased security, and better data control.\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400;\">A special shoutout to the SimplePDF team who were incredibly responsive to all our questions. Their swift and genuine willingness to make adjustments and fix bugs significantly contributed to the success of the integration.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">At Agilno, we are committed to delivering tailored solutions that meet our clients&#8217; unique needs. If you\u2019re looking to streamline your document handling processes, we\u2019re here to help. Contact us today to learn more about how we can enhance your application\u2019s functionality and user experience.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">For more technical insights and solutions, stay tuned to our blog or contact us at <a href=\"mailto:hello@agilno.com\">hello@agilno.com<\/a><\/span><\/p>\n","protected":false},"excerpt":{"rendered":"<p>At Agilno, we pride ourselves on delivering innovative and efficient solutions tailored to meet the specific needs of our clients.<\/p>\n","protected":false},"author":16,"featured_media":2633,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[18,21],"tags":[],"class_list":["post-2632","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-backend-development","category-frontend-development"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.2 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>PDF Signing in React - Agilno<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/makeit.com.hr\/agilno\/blog\/pdf-signing-and-form-filling-in-react\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"PDF Signing in React - Agilno\" \/>\n<meta property=\"og:description\" content=\"At Agilno, we pride ourselves on delivering innovative and efficient solutions tailored to meet the specific needs of our clients.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/makeit.com.hr\/agilno\/blog\/pdf-signing-and-form-filling-in-react\/\" \/>\n<meta property=\"og:site_name\" content=\"Agilno\" \/>\n<meta property=\"article:published_time\" content=\"2024-08-14T10:54:49+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-09-25T10:54:30+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/makeit.com.hr\/agilno\/wp-content\/uploads\/2024\/08\/marko-cubic.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"2560\" \/>\n\t<meta property=\"og:image:height\" content=\"1540\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Marija\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Marija\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/makeit.com.hr\/agilno\/blog\/pdf-signing-and-form-filling-in-react\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/makeit.com.hr\/agilno\/blog\/pdf-signing-and-form-filling-in-react\/\"},\"author\":{\"name\":\"Marija\",\"@id\":\"https:\/\/makeit.com.hr\/agilno\/#\/schema\/person\/974127270f2ed3dd1687a8077493d715\"},\"headline\":\"PDF Signing in React\",\"datePublished\":\"2024-08-14T10:54:49+00:00\",\"dateModified\":\"2024-09-25T10:54:30+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/makeit.com.hr\/agilno\/blog\/pdf-signing-and-form-filling-in-react\/\"},\"wordCount\":700,\"commentCount\":0,\"image\":{\"@id\":\"https:\/\/makeit.com.hr\/agilno\/blog\/pdf-signing-and-form-filling-in-react\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/makeit.com.hr\/agilno\/wp-content\/uploads\/2024\/08\/marko-cubic.jpg\",\"articleSection\":[\"Backend Development\",\"Frontend Development\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/makeit.com.hr\/agilno\/blog\/pdf-signing-and-form-filling-in-react\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/makeit.com.hr\/agilno\/blog\/pdf-signing-and-form-filling-in-react\/\",\"url\":\"https:\/\/makeit.com.hr\/agilno\/blog\/pdf-signing-and-form-filling-in-react\/\",\"name\":\"PDF Signing in React - Agilno\",\"isPartOf\":{\"@id\":\"https:\/\/makeit.com.hr\/agilno\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/makeit.com.hr\/agilno\/blog\/pdf-signing-and-form-filling-in-react\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/makeit.com.hr\/agilno\/blog\/pdf-signing-and-form-filling-in-react\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/makeit.com.hr\/agilno\/wp-content\/uploads\/2024\/08\/marko-cubic.jpg\",\"datePublished\":\"2024-08-14T10:54:49+00:00\",\"dateModified\":\"2024-09-25T10:54:30+00:00\",\"author\":{\"@id\":\"https:\/\/makeit.com.hr\/agilno\/#\/schema\/person\/974127270f2ed3dd1687a8077493d715\"},\"breadcrumb\":{\"@id\":\"https:\/\/makeit.com.hr\/agilno\/blog\/pdf-signing-and-form-filling-in-react\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/makeit.com.hr\/agilno\/blog\/pdf-signing-and-form-filling-in-react\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/makeit.com.hr\/agilno\/blog\/pdf-signing-and-form-filling-in-react\/#primaryimage\",\"url\":\"https:\/\/makeit.com.hr\/agilno\/wp-content\/uploads\/2024\/08\/marko-cubic.jpg\",\"contentUrl\":\"https:\/\/makeit.com.hr\/agilno\/wp-content\/uploads\/2024\/08\/marko-cubic.jpg\",\"width\":2560,\"height\":1540},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/makeit.com.hr\/agilno\/blog\/pdf-signing-and-form-filling-in-react\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/makeit.com.hr\/agilno\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"PDF Signing in React\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/makeit.com.hr\/agilno\/#website\",\"url\":\"https:\/\/makeit.com.hr\/agilno\/\",\"name\":\"Agilno\",\"description\":\"We build experiences, products, and businesses that create results\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/makeit.com.hr\/agilno\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/makeit.com.hr\/agilno\/#\/schema\/person\/974127270f2ed3dd1687a8077493d715\",\"name\":\"Marija\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/secure.gravatar.com\/avatar\/cb138071e84e3a8e95a4b9e008f46076f9b525fc4df1cbaff6eb2c0d2b36cf80?s=96&d=mm&r=g\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/cb138071e84e3a8e95a4b9e008f46076f9b525fc4df1cbaff6eb2c0d2b36cf80?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/cb138071e84e3a8e95a4b9e008f46076f9b525fc4df1cbaff6eb2c0d2b36cf80?s=96&d=mm&r=g\",\"caption\":\"Marija\"},\"url\":\"https:\/\/makeit.com.hr\/agilno\/author\/marija\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"PDF Signing in React - Agilno","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/makeit.com.hr\/agilno\/blog\/pdf-signing-and-form-filling-in-react\/","og_locale":"en_US","og_type":"article","og_title":"PDF Signing in React - Agilno","og_description":"At Agilno, we pride ourselves on delivering innovative and efficient solutions tailored to meet the specific needs of our clients.","og_url":"https:\/\/makeit.com.hr\/agilno\/blog\/pdf-signing-and-form-filling-in-react\/","og_site_name":"Agilno","article_published_time":"2024-08-14T10:54:49+00:00","article_modified_time":"2024-09-25T10:54:30+00:00","og_image":[{"width":2560,"height":1540,"url":"https:\/\/makeit.com.hr\/agilno\/wp-content\/uploads\/2024\/08\/marko-cubic.jpg","type":"image\/jpeg"}],"author":"Marija","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Marija","Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/makeit.com.hr\/agilno\/blog\/pdf-signing-and-form-filling-in-react\/#article","isPartOf":{"@id":"https:\/\/makeit.com.hr\/agilno\/blog\/pdf-signing-and-form-filling-in-react\/"},"author":{"name":"Marija","@id":"https:\/\/makeit.com.hr\/agilno\/#\/schema\/person\/974127270f2ed3dd1687a8077493d715"},"headline":"PDF Signing in React","datePublished":"2024-08-14T10:54:49+00:00","dateModified":"2024-09-25T10:54:30+00:00","mainEntityOfPage":{"@id":"https:\/\/makeit.com.hr\/agilno\/blog\/pdf-signing-and-form-filling-in-react\/"},"wordCount":700,"commentCount":0,"image":{"@id":"https:\/\/makeit.com.hr\/agilno\/blog\/pdf-signing-and-form-filling-in-react\/#primaryimage"},"thumbnailUrl":"https:\/\/makeit.com.hr\/agilno\/wp-content\/uploads\/2024\/08\/marko-cubic.jpg","articleSection":["Backend Development","Frontend Development"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/makeit.com.hr\/agilno\/blog\/pdf-signing-and-form-filling-in-react\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/makeit.com.hr\/agilno\/blog\/pdf-signing-and-form-filling-in-react\/","url":"https:\/\/makeit.com.hr\/agilno\/blog\/pdf-signing-and-form-filling-in-react\/","name":"PDF Signing in React - Agilno","isPartOf":{"@id":"https:\/\/makeit.com.hr\/agilno\/#website"},"primaryImageOfPage":{"@id":"https:\/\/makeit.com.hr\/agilno\/blog\/pdf-signing-and-form-filling-in-react\/#primaryimage"},"image":{"@id":"https:\/\/makeit.com.hr\/agilno\/blog\/pdf-signing-and-form-filling-in-react\/#primaryimage"},"thumbnailUrl":"https:\/\/makeit.com.hr\/agilno\/wp-content\/uploads\/2024\/08\/marko-cubic.jpg","datePublished":"2024-08-14T10:54:49+00:00","dateModified":"2024-09-25T10:54:30+00:00","author":{"@id":"https:\/\/makeit.com.hr\/agilno\/#\/schema\/person\/974127270f2ed3dd1687a8077493d715"},"breadcrumb":{"@id":"https:\/\/makeit.com.hr\/agilno\/blog\/pdf-signing-and-form-filling-in-react\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/makeit.com.hr\/agilno\/blog\/pdf-signing-and-form-filling-in-react\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/makeit.com.hr\/agilno\/blog\/pdf-signing-and-form-filling-in-react\/#primaryimage","url":"https:\/\/makeit.com.hr\/agilno\/wp-content\/uploads\/2024\/08\/marko-cubic.jpg","contentUrl":"https:\/\/makeit.com.hr\/agilno\/wp-content\/uploads\/2024\/08\/marko-cubic.jpg","width":2560,"height":1540},{"@type":"BreadcrumbList","@id":"https:\/\/makeit.com.hr\/agilno\/blog\/pdf-signing-and-form-filling-in-react\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/makeit.com.hr\/agilno\/"},{"@type":"ListItem","position":2,"name":"PDF Signing in React"}]},{"@type":"WebSite","@id":"https:\/\/makeit.com.hr\/agilno\/#website","url":"https:\/\/makeit.com.hr\/agilno\/","name":"Agilno","description":"We build experiences, products, and businesses that create results","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/makeit.com.hr\/agilno\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/makeit.com.hr\/agilno\/#\/schema\/person\/974127270f2ed3dd1687a8077493d715","name":"Marija","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/cb138071e84e3a8e95a4b9e008f46076f9b525fc4df1cbaff6eb2c0d2b36cf80?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/cb138071e84e3a8e95a4b9e008f46076f9b525fc4df1cbaff6eb2c0d2b36cf80?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/cb138071e84e3a8e95a4b9e008f46076f9b525fc4df1cbaff6eb2c0d2b36cf80?s=96&d=mm&r=g","caption":"Marija"},"url":"https:\/\/makeit.com.hr\/agilno\/author\/marija\/"}]}},"_links":{"self":[{"href":"https:\/\/makeit.com.hr\/agilno\/wp-json\/wp\/v2\/posts\/2632","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/makeit.com.hr\/agilno\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/makeit.com.hr\/agilno\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/makeit.com.hr\/agilno\/wp-json\/wp\/v2\/users\/16"}],"replies":[{"embeddable":true,"href":"https:\/\/makeit.com.hr\/agilno\/wp-json\/wp\/v2\/comments?post=2632"}],"version-history":[{"count":9,"href":"https:\/\/makeit.com.hr\/agilno\/wp-json\/wp\/v2\/posts\/2632\/revisions"}],"predecessor-version":[{"id":2856,"href":"https:\/\/makeit.com.hr\/agilno\/wp-json\/wp\/v2\/posts\/2632\/revisions\/2856"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/makeit.com.hr\/agilno\/wp-json\/wp\/v2\/media\/2633"}],"wp:attachment":[{"href":"https:\/\/makeit.com.hr\/agilno\/wp-json\/wp\/v2\/media?parent=2632"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/makeit.com.hr\/agilno\/wp-json\/wp\/v2\/categories?post=2632"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/makeit.com.hr\/agilno\/wp-json\/wp\/v2\/tags?post=2632"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}