Microsoft word belgesi oluştururken pencerenin gözükmemesini sağlamak

Merhaba oluşturduğum barkodları bir word belgesine yazıyorum ancak her seferinde word’ün girişinde çıkan mavi sayfada çıkıyor. Bunu engellemek için şöyle bir yazı buldum

https://www.betaarchive.com/wiki/index.php/Microsoft_KB_Archive/259971

Ancak python için bir çözüm arıyorum.Kodlarım ;

        import barcode
        from barcode.writer import ImageWriter

        bar_class = barcode.get_barcode_class('code128')
        barcode = Barcode

        writer = ImageWriter()
        code128 = bar_class(barcode, writer)

        code128.save('barcode',
                     {"module_width": 0.45, "module_height": 12, "font_size": 22, "text_distance": 1, "quiet_zone": 3})
        document = Document()
        section = document.sections[0]
        section.page_height = Mm(15)
        section.page_width = Mm(35)
        section.left_margin = Mm(1.5)
        section.right_margin = Mm(1.5)
        section.top_margin = Mm(3)
        section.bottom_margin = Mm(0)

        document.add_picture('barcode.png', width=Inches(1.3))

        document.save('demo.docx')

office surumu nedir?

2016 sürümünü kullanıyorum

bunu yapabileceginiz bir kac yol var (dogru anladıysam tabi), en basiti; registry de “HKEY_CURRENT_USER\Software\Microsoft\Office\16.0\Word\Options\DisableBootToOfficeStart” dword olusturmak, “1” kapatır, “0” acar.

ikinci yol ise pywin32 kullanmak;

Edit:
bu kodlarla office 2016 da test ettim, herhangi bir sorun olmadı.

import barcode
from barcode.codex import Code128
from barcode.writer import ImageWriter

from docx import Document
from docx.shared import Inches


barkod = barcode.get('code128', '123456789102', writer=ImageWriter())

fileName = barkod.save('barkod')

document = Document()

document.add_heading('Document Title', 0)

p = document.add_paragraph('A plain paragraph having some ')
p.add_run('bold').bold = True
p.add_run(' and some ')
p.add_run('italic.').italic = True

document.add_heading('Heading, level 1', level=1)
document.add_paragraph('Intense quote', style='Intense Quote')

document.add_paragraph(
    'first item in unordered list', style='List Bullet'
)
document.add_paragraph(
    'first item in ordered list', style='List Number'
)

document.add_picture(fileName, width=Inches(1.25))

records = (
    (3, '101', 'Spam'),
    (7, '422', 'Eggs'),
    (4, '631', 'Spam, spam, eggs, and spam')
)

table = document.add_table(rows=1, cols=3)
hdr_cells = table.rows[0].cells
hdr_cells[0].text = 'Qty'
hdr_cells[1].text = 'Id'
hdr_cells[2].text = 'Desc'
for qty, id, desc in records:
    row_cells = table.add_row().cells
    row_cells[0].text = str(qty)
    row_cells[1].text = id
    row_cells[2].text = desc

document.add_page_break()

document.save('demo.docx')

1 Beğeni

Yardımlarınız için teşekkür ederim şimdi kontrol ettim bende sorunu yaratan şey word dosyasına resim kaydetmek değil onun çıktısını almaya çalışmakmış sizin kodunuzu denedikten sonra farkettim. Buraya eklemeyi unutmuşum.

os.startfile("demo.docx", "print")

bu satırı kodunuzun en altına ekleyip denemeniz mümkün mü ne demek istediğimi anlayacaksınız

bu sekilde yazdırmayı deneyin, dogrudan yazıcıya gonderiyor.

import subprocess

subprocess.Popen([r"C:\Program Files\Microsoft Office\root\Office16\WINWORD.EXE", "demo.docx", "/mFilePrintDefault", "/mFileExit"]).communicate()

malesef bu yazıcıya gönderiyor ancak wordü direk açtı ve hiç kapanmadı

bu kodlar isinizi tam olarak gormeli

import win32com.client

msword = win32com.client.Dispatch("Word.Application")

#msword.visible = 0

msword.Documents.Open(r"C:\Users\Administrator\Desktop\demo.docx")

msword.ActiveDocument.PrintOut()

msword.Quit()
2 Beğeni

çok teşekkür ederim evet word penceresi açılmıyor