Cómo eliminar la primera línea de un archivo de Word en Python y la negrita de la fuente no funciona.
Estoy escribiendo un programa en Python que abre un archivo docx y escribe texto en él, utilizando “aspose.words”, y tengo dos problemas:
1) Tengo un problema que cuando abro un archivo, empieza con la oración
“Evaluación solamente. Creado con Aspose.Words. Copyright 2003-2021 Aspose Pty Ltd.”
y quiero eliminar esa línea después de crear el archivo (puedo eliminarla manualmente, por lo que es eliminable).
2) Mi segundo problema es que cuando uso “font.bold = True” en un texto en inglés, funciona perfectamente, pero cuando lo uso en texto en otro idioma, no funciona.
¿Alguien sabe cómo puedo resolver estos dos problemas (es la primera vez que uso “aspose.words”)?
Aquí está mi código:
import aspose.words as aw
def main():
doc = aw.Document()
builder = aw.DocumentBuilder(doc)
writeDest(1, builder)
doc.save("out.docx")
def writeDest(designation, builder):
font = builder.font
font.size = 12
font.bold = True
font.name = "David"
paragraphFormat = builder.paragraph_format
paragraphFormat.alignment = aw.ParagraphAlignment.RIGHT
label = 'ייעוד: ' + str(designation)
builder.write(label)
builder.write("\n")
font.bold = False
if designation == 1:
file = open('destenationTextFiles/1', encoding="utf8")
for word in file:
builder.write(word)
builder.write('\n')
font.bold = True
builder.write(':תיקון ')
builder.write("\n")
font.bold = False
file.close()
file = open("destenationTextFiles/fixed1", encoding="utf8")
for word in file:
builder.write(word)
file.close()
if __name__ == "main":
main()
davy.ai
Solución
Problema 1:
Para eliminar el mensaje de evaluación, puedes utilizar el método
Document.remove_smart_tags
después de crear el objeto de documento, de la siguiente manera:Problema 2:
El problema con la propiedad
font.bold
que no funciona en texto no inglés puede deberse a diferencias en el soporte de fuentes para el texto en negrita de caracteres no latinos. Una solución que puedes intentar es utilizar una fuente diferente que admita la negrita para tu idioma no inglés específico. Puedes experimentar con diferentes fuentes hasta encontrar una que funcione.Por ejemplo, puedes cambiar la fuente en tu código a una fuente hebrea común que admita la negrita, de esta manera:
Alternativamente, puedes intentar utilizar la propiedad
Run.Font.Bold
en lugar de la propiedadFont.Bold
, de esta manera:Esto establece la propiedad
bold
para el texto específico que deseas resaltar en negrita, en lugar de establecer la propiedadbold
para toda la fuente. Esto puede darte más control sobre la negrita de caracteres específicos en tu texto no inglés.En resumen, la mejor solución dependerá de la fuente y el idioma específicos con los que estés trabajando, por lo que es posible que necesites experimentar un poco para encontrar el enfoque adecuado.