![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы
![]() |
Поиск в этой теме
![]() |
![]() |
#1 |
Пользователь
Регистрация: 14.12.2023
Сообщений: 32
|
![]()
Я создаю журнал буфера обмена (подобный журнал есть на windows 10) - сохранение копий текста в списке для их последующего использования. В упрощенном виде принцип работы кода такой:
If pyperclip.paste(): List.append(pyperclip.paste()) Проблема в том, что, когда я извлекаю какой-либо элемент (копию текста) из списка List и вставляю его в word, все исходное форматирование (шрифт, курсив и т.д.) теряются и вставляется просто текст без форматирования, а скопированные таблицы вообще не отображаются (я уже понял, что pyperclip копирует только текст). Я думал копать в строну модуля win32clipboard, но информация подается очень сложно, и ее мало, мне новичку непонятно. Что делать? |
![]() |
![]() |
![]() |
#2 |
Старожил
Регистрация: 24.01.2011
Сообщений: 3,154
|
![]()
и сколько фрагментов из буфера обмена получаете в переменную? для справки - ворд умеет держать в памяти 24 объекта, можно код имеющегося?
|
![]() |
![]() |
![]() |
#3 |
Пользователь
Регистрация: 14.12.2023
Сообщений: 32
|
![]()
Что значит фрагментов?
|
![]() |
![]() |
![]() |
#4 |
Старожил
Регистрация: 24.01.2011
Сообщений: 3,154
|
![]() |
![]() |
![]() |
![]() |
#5 |
Пользователь
Регистрация: 14.12.2023
Сообщений: 32
|
![]()
Я не очень понимаю, новичок. Копирую текст с сайтов, с ворда грубо говоря так: pyperclip.copy(pyperclip.paste), после чего пытаюсь вставить его ворд (обычно он предлагает варианты вставки: вставить исходное форматирование (то есть стиль текста источника) либо вставить только текст (такая вставка подстраивается под общий стиль в ворде)), но после того как текст "пройдет" через pyperclip он вставляется в ворд только как голый текст. А мне нужно добиться, чтобы при вставке в ворд установился стиль источника текста (сайта, другого документа и т.д.)
|
![]() |
![]() |
![]() |
#6 |
Старожил
Регистрация: 24.01.2011
Сообщений: 3,154
|
![]() |
![]() |
![]() |
![]() |
#7 |
Старожил
Регистрация: 24.01.2011
Сообщений: 3,154
|
![]() |
![]() |
![]() |
![]() |
#8 |
Пользователь
Регистрация: 14.12.2023
Сообщений: 32
|
![]()
import pyperclip
import keyboard import tkinter as tk from tkinter import ttk from tkinter import * from PIL import Image, ImageTk import time import win32gui import win32api import os #список для накопления копий spisok=[] pyperclip.copy('') sh=[] #окно root=Tk() root.title('Advanced Сlipboard') root.geometry('296x350') root.resizable(width=False, height=False) root.attributes("-topmost",True) root.configure(bg='lightblue') try: i=os.path.abspath('ico.ico')#'C:/Users/Sonya/Documents/Bandicam/ic.ico' icon = Image.open(i) icon_photo = ImageTk.PhotoImage(icon) root.iconphoto(True, icon_photo) except: pass def move(event): global hwnd hwnd = win32gui.GetForegroundWindow() if hwnd and hwnd!=0: sh.append(hwnd) if len(sh) > 20: del sh[0:15] root.bind('<Motion>', move) def b1(event): if hwnd!=0: win32gui.SetForegroundWindow(hwnd) else: win32gui.SetForegroundWindow(sh[-1]) root.bind('<Button-1>', b1) #функция копирования def act(): if win32api.GetKeyboardLayout()==68748 313: keyboard.press_and_release('ctrl+с' ) else: keyboard.press_and_release('ctrl+c' ) el=pyperclip.paste() if el and el not in spisok and el != '\r\n': spisok.append(el) time.sleep(0.3) #дублер функции кнопки копирования с привязкой конфигурации кнопок def act2(): if win32api.GetKeyboardLayout()==68748 313: keyboard.press_and_release('ctrl+с' ) else: keyboard.press_and_release('ctrl+c' ) el=pyperclip.paste() if el and el not in spisok and el != '\r\n': spisok.append(el) #кнопки def configP1(): pyperclip.copy(spisok[0]) keyboard.press_and_release('ctrl+v' ) if len(spisok) >= 1: p1=Button(root,text=spisok[0][:15],width=15,height=1,font=('Times New Roman',12),bg='white',command=confi gP1) p1.place(x=0,y=0) def configP2(): pyperclip.copy(spisok[1]) keyboard.press_and_release('ctrl+v' ) if len(spisok) >= 2: p2=Button(root,text=spisok[1][:15],width=15,height=1,font=('Times New Roman',12),bg='white',command=confi gP2) p2.place(x=0,y=30) def configP3(): pyperclip.copy(spisok[2]) keyboard.press_and_release('ctrl+v' ) if len(spisok) >= 3: p3=Button(root,text=spisok[2][:15],width=15,height=1,font=('Times New Roman',12),bg='white',command=confi gP3) p3.place(x=0,y=60) def configP4(): pyperclip.copy(spisok[3]) keyboard.press_and_release('ctrl+v' ) if len(spisok) >= 4: p4=Button(root,text=spisok[3][:15],width=15,height=1,font=('Times New Roman',12),bg='white',command=confi gP4) p4.place(x=0,y=90) #кнопка копирования def actact(): act() act2() k1=Button(root, text='Копировать',width=15,height=1 , font=('Times New Roman',12),bg='#556B2F', command=actact) k1.place(x=0,y=315) #кнопка очистки def delete(): for widget in root.winfo_children(): widget.destroy() k1=Button(root, text='Копировать',width=15,height=1 ,font=('Times New Roman',12),bg='#556B2F', command=actact) k1.place(x=0,y=315) k2=Button(root, text='Очистить',width=15,height=1,f ont=('Times New Roman',12),bg='#556B2F', command=delete) k2.place(x=150,y=315) spisok.clear() pyperclip.copy('') k2=Button(root, text='Очистить',width=15,height=1,f ont=('Times New Roman',12),bg='#556B2F', command=delete) k2.place(x=150,y=315) root.mainloop() |
![]() |
![]() |
![]() |
#9 |
Старожил
Регистрация: 24.01.2011
Сообщений: 3,154
|
![]()
Esprit - зачем такие пропуски между блоками? выкладывайте без абзацев и после выкладывания на форум нужно код выделить и нажать кнопку [CODE] - тогда в се отступы будут, а так они съехали
|
![]() |
![]() |
![]() |
#10 |
Пользователь
Регистрация: 14.12.2023
Сообщений: 32
|
![]() Код:
|
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Копирование текста из RichEdit в EXCEL построчно с сохранением формата | okunevskiy | Общие вопросы Delphi | 2 | 09.03.2016 16:04 |
перенести документ Word (таблица) в MS Excel c сохранением форматирования или обеспечить всплывающие подсказки в Word | Serge_Bliznykov | Microsoft Office Word | 6 | 11.07.2011 11:02 |
Копирование значений и форматирования | Eugenio | Microsoft Office Excel | 21 | 22.03.2010 19:28 |
Копирование таблицы без потери форматирования | k1r1ch | Microsoft Office Excel | 3 | 09.07.2009 11:00 |
RichText1 с сохранением форматирования | andrey4623 | Общие вопросы Delphi | 1 | 23.03.2008 21:06 |