es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

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()
Tags:  ,

Answer

  1. Avatar for 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:

    doc = aw.Document()
    doc.remove_smart_tags()
    builder = aw.DocumentBuilder(doc)
    

    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:

    font.name = "Arial"
    

    Alternativamente, puedes intentar utilizar la propiedad Run.Font.Bold en lugar de la propiedad Font.Bold, de esta manera:

    run = builder.write(label)
    run.font.bold = True
    

    Esto establece la propiedad bold para el texto específico que deseas resaltar en negrita, en lugar de establecer la propiedad bold 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.

Comments are closed.