Hola,
Tengo un error que no consigo solucionar de ninguna manera y es por el formato de un valor en el metadata del documento.
He utilizado vuestro codigo de la documentación para reemplazar un texto por otro, pero sigo obteniendo el mismo error.
Podríais ayudarme con esto?
@MarioTM10
Hola,
El error que estás experimentando, “Proxy error (InvalidValueFormatException): Time Zone value has incorrect format”, indica que hay un problema con el formato de la zona horaria que estás utilizando en los metadatos del documento. Asegúrate de que el valor de la zona horaria esté en el formato correcto, como “UTC”, “GMT+2”, o “America/New_York”.
Para solucionar este problema, verifica que el valor de la zona horaria que estás configurando sea válido y cumpla con el formato esperado. Si estás utilizando un objeto de configuración para establecer la zona horaria, asegúrate de que esté correctamente inicializado y que no contenga errores tipográficos.
Si necesitas más ayuda, por favor proporciona un fragmento de código donde estés configurando la zona horaria, y estaré encantado de ayudarte a identificar el problema.
Si tienes más preguntas, no dudes en preguntar.
@MarioTM10,
¿Podrías compartir amablemente tu código de muestra junto con los archivos necesarios para ayudarnos a reproducir el problema? Lo revisaremos de inmediato.
P.D. Por favor, asegúrate de comprimir los archivos de recursos antes de adjuntarlos aquí.
clean_and_replace_with_aspose.py
import os
import shutil
from datetime import datetime
import tzlocal # pip install tzlocal
import pikepdf
Ajusta rutas
INPUT = r"C:\Users\mario.tarano\OneDrive - AGGITY EUROPE, S.A\TEST\stangby.pdf"
TEMP_CLEAN = r"C:\Users\mario.tarano\OneDrive - AGGITY EUROPE, S.A\TEST\stangby_clean.pdf"
OUTPUT = r"C:\Users\mario.tarano\OneDrive - AGGITY EUROPE, S.A\TEST\stangby_modificado.pdf"
FIND_TEXT = “WELCOME”
REPLACE_TEXT = “BIENVENIDO”
1) Backup
bak = INPUT + “.bak.pdf”
if not os.path.exists(bak):
shutil.copy(INPUT, bak)
print(“Backup creado:”, bak)
2) Limpiar XMP e Info con pikepdf
with pikepdf.Pdf.open(INPUT) as pdf:
# acceder al catalog/root
root = pdf.Root
if "/Metadata" in root:
try:
del root["/Metadata"]
print("Se eliminó /Metadata del Root.")
except Exception as e:
print("No se pudo eliminar /Metadata:", e)
# eliminar /Info si existe
if "/Info" in pdf.trailer:
try:
del pdf.trailer["/Info"]
print("Se eliminó /Info del trailer.")
except Exception as e:
print("No se pudo eliminar /Info:", e)
pdf.save(TEMP_CLEAN)
print("PDF limpio guardado en:", TEMP_CLEAN)
3) Reemplazo con Aspose.PDF (usa el PDF limpio)
import aspose.pdf as ap
with ap.Document(TEMP_CLEAN) as document:
absorber = ap.text.TextFragmentAbsorber(FIND_TEXT)
document.pages.accept(absorber)
for tf in absorber.text_fragments:
st = tf.text_state
tf.text = REPLACE_TEXT
# preserva estilo
tf.text_state.font = st.font
tf.text_state.font_size = st.font_size
tf.text_state.foreground_color = st.foreground_color
# Fecha actual en UTC
now = datetime.now().replace(microsecond=0, tzinfo=None)
document.info.creation_date = now
document.info.mod_date = now
document.save(OUTPUT)
print("Guardado final en:", OUTPUT)
stangby.pdf (6,1 MB)
Hola de nuevo,
he probado con otro PDF y si me ha funcionado, parece ser problema de ese pdf.
No tengo licencia. Existe alguna limitación en el tamaño del pdf para la versión de librerías gratuita?
Un saludo.
@MarioTM10
La API no ofrece ninguna limitación en la versión de prueba en términos del tamaño de archivo PDF. Sin embargo, la API procesará más de 4 elementos de cualquier colección solo si se utiliza con licencia. Puede obtener una licencia temporal gratuita válida por 30 días para probar la API en su máxima capacidad con este documento. Si el problema persiste, por favor infórmenos para que podamos proceder en consecuencia.
Hola de nuevo,
Sigo teniendo el mismo problema con ese .pdf, a pesar de haber obtenido una licencia temporal gratuita.
Podríais ayudarme con esto? He probado ha eliminar en el pdf los metadatos pero no ha valido de nada.
Gracias y un saludo.
@MarioTM10
Necesitamos investigar este problema en detalle. ¿Podría confirmar si ya ha probado la última versión de la API? Además, por favor comparta con nosotros los detalles de su entorno, como el nombre y la versión del sistema operativo. Registraremos un ticket de investigación y le compartiremos el ID.
Si, es la última versión.
El sistema operativo es Windows 11 y la herramienta que utilizo es VSC y las librerías de AsposePDF for Python via .NET
@MarioTM10
Hemos abierto el/los siguiente(s) nuevo(s) ticket(s) en nuestro sistema interno de seguimiento de problemas y entregaremos sus soluciones según los términos mencionados en Free Support Policies.
ID(s) del problema: PDFPYTHON-464
Puede obtener Paid Support Services si necesita soporte con prioridad, junto con acceso directo a nuestro equipo de gestión de Soporte Pago.