Marca de agua en documentos

cancel
Showing results for 
Search instead for 
Did you mean: 
naguilar
Member II

Marca de agua en documentos

Buen día a todos:

Necesito realizar una marca de agua(leyenda ) a determinados documentos, pero las rules que contiene el wizard de Alfresco no cuenta con esta opción. ¿De que manera puedo agregar una opcion al wizard de rules de Alfresco?¿es necesario desarrollar un script? si alguien lo ha hecho, me podría indicar como agregar esta opción.

Gracias, en espera de sus comentarios… :roll:  :roll:
16 Replies
cristinamr
Advanced

Re: Marca de agua en documentos

Sinceramente lo que indicas no tengo ni la menor idea de si se puede hacer como comentas o no, pero si puedo indicarte que hay programillas con los que puedes agregarles la marca, pero claro tendrías que agregarlas tú. Sé que no es muy cómodo, pero mira si lo que comentas resulta que no es posible o muy complicado de hacer siempre tienes esa opción =)

Es más creo que por ahí había una aplicación que te metía las marcas de agua por lotes habría que "googlear" pero me da que existe.

Un saludo Smiley Wink
--
VenziaIT: helping companies since 2005! Our ECM products: AQuA & Seidoc
gustena
Member II

Re: Marca de agua en documentos

Hola naguilar.

Para agregar una opcion al wizard de rules de Alfresco puedes hacerlo de dos formas:

1- Implementando un script y ejecutarlo con la opcion "Execute a Script". Esta opción es la más simple pero no aparece explicitamente la regla en el wizard y la complejidad de lo que puedes desarrollar es limitada. Puedes sacar imformación de aqui http://wiki.alfresco.com/wiki/JavaScript_API
2- Implementando una nueva acción mediante la API Java de Alfresco. Esta opción es más complicada pero la acción queda totalmente embebida en Alfresco y no tienes la limitaciones de complejidad del JavaScripts puesto que puedes utilizar cualquier librería Java existente. Aqui tienes un ejemplo http://wiki.alfresco.com/wiki/Custom_Action_UI

Como puedes ver la opción a utilizar depende de la complejidad de lo que quieras hacer y del nivel de programación que tengas, no obstante para tu problema en concreto yo creo que con javascript lo vas a tener complicado ya que tiene pinta de que necesites utilizar alguna librería Java para añadir la marca de agua.
venzia
Senior Member

Re: Marca de agua en documentos

Yo me decantaria por la opción dos, la cual es mas potente. Para ello sigue el articulo que indica gustavo para crear nuevas acciones y luego echale un vistazo a la libreria iText, que viene siendo el API de referencia para trabajar con ficheros pdf desde java http://itextpdf.com/ .. aqui un articulo que explica como añadir un watermark a cada pagina del fichero http://www.java-tips.org/other-api-tips/itext/how-to-display-watermark-in-pdf-documents-from-3.html
Saludos y suerte
cesarista
Customer

Re: Marca de agua en documentos

Hola:

De acuerdo con la opción 2, es la más potente y de hecho, con sinadura (http://www.sinadura.net) la hemos utilizado para realizar un sello visible en un contexto de firma digital.

Sin embargo, puede ser interesante usar la suite de Imagemagick para hacer algo parecido (que es un requisito de alfresco, por cierto) y se podría aplicar mediante un transformador que ejecuta el comando composite, con la única pega que el sellado se aplicaría a un archivo con un mimetype diferente. Una vez definido el transformador podríamos definir una acción, que ejecuta un js y que invoca la transformación definida en el comando. Esto sería la opción 1, comentada por gustena.


composite -compose bumpmap -gravity southeast sello_zylk.png mydoc.pdf mydoc2.pdf

Un saludo.

–C.

P.S: Edito un pequeño "fallo": Este comando sólo sirve para la pdf de una página.
naguilar
Member II

Re: Marca de agua en documentos

Ya tengo los .xml  de lo que me estan indicando en el la liga de ejemplo transformer, sin embargo como puedo hacer para que el RuntimeExecutableContentTransformerWorker se vea en el WebClient, no encuentro la forma de  hacer estas llamadas a este RuntimeExecutableContentTransformerWorker.
cesarista
Customer

Re: Marca de agua en documentos

Ya tengo los .xml  de lo que me estan indicando en el la liga de ejemplo transformer, sin embargo como puedo hacer para que el RuntimeExecutableContentTransformerWorker se vea en el WebClient, no encuentro la forma de  hacer estas llamadas a este RuntimeExecutableContentTransformerWorker.

La transformación tiene que estar disponible en:

Detalles > Acciones > Copiar contenido en un formato dado a una ubicación específica.

una vez declarado en <extension>/web-client-config-custom.xml


   <config evaluator="string-compare" condition="Action Wizards">
      <transformers>
        <transformer name="xx"/>
      </transformers>
   </config>

donde xx es el mimetype al que transformas.
naguilar
Member II

Re: Marca de agua en documentos

Me he basado en la liga http://wiki.alfresco.com/wiki/Content_Transformations  para realizar la transformación de mi archivo y agregue una marca de agua a archivos pdf.
Los pasos que he seguido son los siguientes:
1.- En la ruta Alfresco\tomcat\shared\classes\alfresco\extension agregue un archivo con terminacion -context.xml.
2.- En este archivo especifico la utilizacion de pdftk para agregar la marca de agua (menciono parte del código al que hace referencia el pdftk):
<property name="transformCommand">
      <bean class="org.alfresco.util.exec.RuntimeExec">
        <property name="commandsAndArguments">
          <map>
            <entry key=".*">
              <list>
              <value>pdftk</value>
              <value>${source}</value>
              <!–value>" background prueba.pdf output " </value–>
              <value>background</value>
              <value>c:\prueba.pdf</value>
              <value>output</value>
         <value>${target}</value>
         <value>dont_ask</value>
              </list>
            </entry>
          </map>
        </property>
      </bean>
    </propert
3. En C:\Alfresco\bin agregue el pdftk para tome el programa en linea de comando.
4. Posteriormente levanto el servicio de alfresco, creo una regla con mimetype=pdf y en actioins=Transform and copy content to a specific content.

Estos son los pasos que genero, y hasta al momento parecen correctos, sin embargo, cuando agrego documentos en el espacio donde cree la regl, la primera vez no agrega la marca de agua hasta la segunda vez que vuelvo agregar documentos
y despues de esto vuelvo agregar documentos y ya no grega mas la marca de agua, ¿a que se debe esto?, ¿que es lo que me falta de configurar en algun otro archivo para que siempre se ejecute mi regla de agregar marca de agua en pdf?
Agrego parte de log que se genera y muestra cuando si agrega la marca de agua.

17:05:24,718 User:admin DEBUG [content.transform.ContentTransformerRegistry] Sea
rched for transformer:
   source mimetype: application/pdf
   target mimetype: application/pdf
   transformers: [BinaryPassThroughContentTransformer[ average=0ms], ProxyConten
tTransformer[ average=0ms]]
17:05:24,906 User:admin DEBUG [content.transform.ContentTransformerRegistry] Sea
rched for transformer:
   source mimetype: application/pdf
   target mimetype: text/plain
   transformers: [PdfBoxContentTransformer[ average=0ms]]
17:05:29,968 User:admin DEBUG [content.transform.ContentTransformerRegistry] Sea
rched for transformer:
   source mimetype: application/pdf
   target mimetype: application/pdfe
   transformers: [BinaryPassThroughContentTransformer[ average=0ms], ProxyConten
tTransformer[ average=0ms]]
17:05:29,968 User:admin DEBUG [content.transform.ContentTransformerRegistry] Sea
rched for transformer:
   source mimetype: application/pdf
   target mimetype: application/pdf
   transformers: [BinaryPassThroughContentTransformer[ average=0ms], ProxyConten
tTransformer[ average=0ms]]
17:05:30,171 User:admin DEBUG [content.transform.ContentTransformerRegistry] Sea
rched for transformer:
   source mimetype: application/pdf
   target mimetype: text/plain
   transformers: [PdfBoxContentTransformer[ average=3828ms]]
17:05:34,031 User:admin DEBUG [content.transform.ContentTransformerRegistry] Sea
rched for transformer:
   source mimetype: application/pdf
   target mimetype: text/plain
   transformers: [PdfBoxContentTransformer[ average=3828ms]]
17:05:46,046  DEBUG [content.transform.ContentTransformerRegistry] Searched for
transformer:
   source mimetype: application/pdf
   target mimetype: text/plain
   transformers: [PdfBoxContentTransformer[ average=3828ms]]
17:05:49,046  DEBUG [content.transform.ContentTransformerRegistry] Searched for
transformer:
   source mimetype: application/pdf
   target mimetype: text/plain
   transformers: [PdfBoxContentTransformer[ average=3250ms]]
17:06:01,968 User:admin DEBUG [content.transform.ContentTransformerRegistry] Sea
rched for transformer:
   source mimetype: application/pdf
   target mimetype: application/pdf
   transformers: [BinaryPassThroughContentTransformer[ average=188ms], ProxyCont
entTransformer[ average=0ms]]
17:06:02,156 User:admin DEBUG [content.transform.ContentTransformerRegistry] Sea
rched for transformer:
   source mimetype: application/pdf
   target mimetype: text/plain
   transformers: [PdfBoxContentTransformer[ average=2984ms]]
17:06:02,500 User:admin DEBUG [content.transform.ContentTransformerRegistry] Sea
rched for transformer:
   source mimetype: application/pdf
   target mimetype: application/pdf
   transformers: [BinaryPassThroughContentTransformer[ average=188ms], ProxyCont
entTransformer[ average=0ms]]
17:06:02,500 User:admin DEBUG [content.transform.ContentTransformerRegistry] Sea
rched for transformer:
   source mimetype: application/pdf
   target mimetype: application/pdf
   transformers: [BinaryPassThroughContentTransformer[ average=188ms], ProxyCont
entTransformer[ average=0ms]]
17:06:09,671 User:admin DEBUG [util.exec.RuntimeExec] Execution result:
   os:         Windows XP
   command:    [pdftk, C:\Alfresco\tomcat\temp\Alfresco\RuntimeExecutableContent
TransformerWorker_source_5357437636947796222.pdf, background, c:\prueba.pdf, out
put, C:\Alfresco\tomcat\temp\Alfresco\RuntimeExecutableContentTransformerWorker_
target_2660281423302025397.pdf, dont_ask]
   succeeded:  true
   exit code:  0
   out:
   err:
17:06:09,890 User:admin DEBUG [content.transform.ContentTransformerRegistry] Se
rched for transformer:
   source mimetype: application/pdf
   target mimetype: text/plain
   transformers: [PdfBoxContentTransformer[ average=2984ms]]
17:06:17,671 User:admin DEBUG [content.transform.ContentTransformerRegistry] Se
rched for transformer:
   source mimetype: application/pdf
   target mimetype: text/plain
   transformers: [PdfBoxContentTransformer[ average=2984ms]]
17:06:46,109  DEBUG [content.transform.ContentTransformerRegistry] Searched for
transformer:
   source mimetype: application/pdf
   target mimetype: text/plain
   transformers: [PdfBoxContentTransformer[ average=2984ms]]
17:06:47,234  DEBUG [content.transform.ContentTransformerRegistry] Searched for
transformer:
   source mimetype: application/pdf
   target mimetype: text/plain
   transformers: [PdfBoxContentTransformer[ average=2503ms]]
cesarista
Customer

Re: Marca de agua en documentos

Hola naguilar:

17:06:09,671 User:admin DEBUG [util.exec.RuntimeExec] Execution result:
   os:         Windows XP
   command:    [pdftk, C:\Alfresco\tomcat\temp\Alfresco\RuntimeExecutableContent
TransformerWorker_source_5357437636947796222.pdf, background, c:\prueba.pdf, out
put, C:\Alfresco\tomcat\temp\Alfresco\RuntimeExecutableContentTransformerWorker_
target_2660281423302025397.pdf, dont_ask]
   succeeded:  true
   exit code:  0
   out:
   err:

Buena idea la de usar pdftk - mejor que la del comando composite - y la opción background para marcas de agua de pdf (también hay una opción stamp). Por lo que entiendo, tu problema tiene que estar en la regla, que me imagino que estará definida de contenido "entrante". Además esta regla tiene que usar un espacio distinto al del documento original, porque tienes un transformador de pdf a pdf de modo que si lo aplicas directamente sobre el mismo espacio te dará un error. Si puedes ejecutar el transformador como una accion, y este esta declarado, vas a poder ejecutar la regla.

Un saludo.

–C.
naguilar
Member II

Re: Marca de agua en documentos

Gracias por contestarme.

En efecto esta creada la regla en entrante(Inbound), y en espacios diferentes, realice la prueba y sigue teniendo el mismo patron, hasta que subo un documento por segunda vez es cuando me muestra la marca de agua, despues de subir mas contenido ya no muestra la marca de agua. Lo que me falto hacer es la declaración en Action Wizard, ¿como se realiza esto?, yo configure el archivo web-client-config-custom.xml y en la parte de Action Wizard agregue lo siguiente:
<config evaluator="string-compare" condition="Action Wizards">
      <aspects>
         <aspect name=" application/pdf "/>
      </aspects>
   </config>
La pregunta es que si en este archivo web-client-config-custom.xml se configura para crear la regla desde una action, como tu me lo indicas. Ya que entro en details del espacio que cree y run action, pero no me muestra ni una opcion de transformacion.

Se que he recibido información en links sin embargo como es tanta información quiza ya se había mencionado como o quiza no este bien explicito. Espero me puedas indicar como, lo pruebo, e indico cual es mi resultado.

Saludos… Smiley Sad