Как Π²ΠΏΠΈΡΠ°Ρ‚ΡŒ тСкст Π² ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π² Π²ΠΎΡ€Π΄Π΅: КАК «Π²ΠΏΠΈΡΠ°Ρ‚ΡŒ» ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π² тСкст (Word 2003-ΠΎΠ±Ρ‚Π΅ΠΊΠ°Π½ΠΈΠ΅)

Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠ°Π½ΠΈΠ΅

Как ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠΈ ΠΎΠ΄Π½ΠΎΠ³ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€Π° Π² Microsoft Word β€” Π’Π΅Ρ…Π½ΠΈΡ‡ΠΊΠ°

Иногда ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ Π½ΡƒΠΆΠ½ΠΎ Ρ€Π°Π·ΠΎΠΌ Π²ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π² Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ Microsoft Word ΠΊΡƒΡ‡Ρƒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΎΠΊ. Ну ΠΈ, чисто эстСтичСски, хочСтся, Ρ‡Ρ‚ΠΎΠ±Ρ‹ всС ΠΎΠ½ΠΈ Π±Ρ‹Π»ΠΈ ΠΎΠ΄Π½ΠΎΠ³ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€Π°. Волько Π²ΠΎΡ‚ ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΌΡƒ ΠΈΡΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ – Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΌΠ½ΠΎΠ³ΠΎ ΡƒΡ…ΠΎΠ΄ΠΈΡ‚. А вСдь Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ Π΅ΡΡ‚ΡŒ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ инструмСнт, с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ΄ΠΎΠ³Π½Π°Ρ‚ΡŒ Ρ€Π°Π·ΠΎΠΌ Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΊΡƒΡ‡ΠΈ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ. Об этой Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ я сСгодня ΠΈ расскаТу.

Как ΠΏΠΎΠ΄ΠΎΠ³Π½Π°Ρ‚ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΎΠΊ Π² Microsoft Word

ΠŸΠΎΠ΄Π³ΠΎΠ½ΡΡ‚ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΎΠΊ Π² Microsoft Word ΠΌΠΎΠΆΠ½ΠΎ нСсколькими способами. Как я ΡƒΠΆΠ΅ Π³ΠΎΠ²ΠΎΡ€ΠΈΠ»Π°, Π΅ΡΡ‚ΡŒ быстрый способ измСнСния Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠ² всСх ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ Ρ€Π°Π·ΠΎΠΌ ΠΈΠ»ΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΏΠΎ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ. Π― Ρ€Π°Π·Π±Π΅Ρ€Ρƒ нСсколько способов, ΠΏΠΎΡΡ‚Π°Ρ€Π°ΡŽΡΡŒ ΠΎΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΈΡ… Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ максимально ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ.

ИзмСнСниС Ρ€Π°Π·ΠΌΠ΅Ρ€Π° ΠΎΠ΄Π½ΠΎΠΉ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠΈ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ

Π‘Π°ΠΌΡ‹ΠΉ простой способ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠΈ Π² MS Word (ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ я постоянно ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΡƒΡŽ) – навСсти курсор Π½Π° ΡƒΠ³ΠΎΠ» ΠΈΠ»ΠΈ любой ΠΊΡ€Π°ΠΉ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠΈ ΠΈ Π²Ρ‹Ρ‚ΡΠ½ΡƒΡ‚ΡŒ Π΅Π³ΠΎ. А Ссли Π½ΡƒΠΆΠ½ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎ ΡˆΠΈΡ€ΠΈΠ½Π΅ ΠΎΠ½ΠΈ Π±Ρ‹Π»ΠΈ схоТи, ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΏΠΎ Π»ΠΈΠ½Π΅ΠΉΠΊΠ΅.

МнС Π»ΠΈΡ‡Π½ΠΎ ΡƒΠ΄ΠΎΠ±Π½Π΅Π΅ ΠΏΠΎΠ΄Π³ΠΎΠ½ΡΡ‚ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΎΠΊ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π· Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ, ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΡƒΡΡΡŒ ΠΏΠΎ Π»ΠΈΠ½Π΅ΠΉΠΊΠ΅

Π£ΠΊΠ°Π·Π°Ρ‚ΡŒ Ρ‚ΠΎΡ‡Π½ΡƒΡŽ высоту ΠΈ ΡˆΠΈΡ€ΠΈΠ½Ρƒ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ

Для этого ΠΌΠ½Π΅ Π½ΡƒΠΆΠ½ΠΎ сначала Π½Π°ΠΆΠ°Ρ‚ΡŒ Π½Π° ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅, послС Ρ‡Π΅Π³ΠΎ Π² Π³Π»Π°Π²Π½ΠΎΠΌ мСню появится Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ катСгория Β«Π Π°Π±ΠΎΡ‚Π° с рисунками». Π–ΠΌΡƒ ΠΏΠΎ Π²ΠΊΠ»Π°Π΄ΠΊΠ΅ Β«Π€ΠΎΡ€ΠΌΠ°Ρ‚Β», послС Ρ‡Π΅Π³ΠΎ Π² ΠΏΡ€Π°Π²ΠΎΠΉ Π΅Π΅ части, Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ Β«Π Π°Π·ΠΌΠ΅Ρ€Β», ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹Π΅ Π²Π΅Π»ΠΈΡ‡ΠΈΠ½Ρ‹ ΠΏΠΎ высотС ΠΈ ΡˆΠΈΡ€ΠΈΠ½Π΅. Π­Ρ‚ΠΎΡ‚ способ распространяСтся Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π° ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠΈ, Π½ΠΎ ΠΈ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹, Ρ„ΠΈΠ³ΡƒΡ€Ρ‹, надписи ΠΈ Ρ‚Π°ΠΊ Π΄Π°Π»Π΅Π΅.

Π•Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ – ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ Ρ‚ΠΎΡ‡Π½Ρ‹ΠΉ Ρ€Π°Π·ΠΌΠ΅Ρ€ Π² этой строкС

ΠŸΡ€Π°ΠΊΡ‚ΠΈΡ‡Π΅ΡΠΊΠΈ Ρ‚ΠΎΡ‡Π½ΠΎ Ρ‚Π°ΠΊ ΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ€ Π² ΠΎΠΊΠ½Π΅ с Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Ρ‹ΠΌΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌΠΈ. Для этого Π½ΡƒΠΆΠ½ΠΎ Π² Ρ‚ΠΎΠΌ ΠΆΠ΅ Ρ€Π°Π·Π΄Π΅Π»Π΅ ΠΊΠ»ΠΈΠΊΠ½ΡƒΡ‚ΡŒ Π½Π° ΠΌΠ°Π»Π΅Π½ΡŒΠΊΡƒΡŽ ссылку Π² ΠΏΡ€Π°Π²ΠΎΠΌ Π½ΠΈΠΆΠ½Π΅ΠΌ ΡƒΠ³Π»Ρƒ этого мСню.

Π•Ρ‰Π΅ я ΠΌΠΎΠ³Ρƒ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ ΠΎΠΊΠ½ΠΎ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² настройки Ρ€Π°Π·ΠΌΠ΅Ρ€Π° ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠΈ

Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ откроСтся ΠΎΠΊΠ½ΠΎ Β«ΠœΠ°ΠΊΠ΅Ρ‚Β». Π’ΠΎ Π²ΠΊΠ»Π°Π΄ΠΊΠ΅ Β«Π Π°Π·ΠΌΠ΅Ρ€Β» я ΠΌΠΎΠ³Ρƒ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ Ρ‚ΠΎΡ‡Π½ΡƒΡŽ высоту ΠΈ ΡˆΠΈΡ€ΠΈΠ½Ρƒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠΈ, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠ°ΡΡˆΡ‚Π°Π± Π΅Π΅ ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… элСмСнтов ΠΈΠ»ΠΈ исходного Ρ€Π°Π·ΠΌΠ΅Ρ€Π° Π² ΠΏΡ€ΠΎΡ†Π΅Π½Ρ‚Π°Ρ….

Π’Π²ΠΎΠΆΡƒ Ρ‚ΠΎΡ‡Π½Ρ‹Π΅ значСния ΠΏΠΎ высотС ΠΈ ΡˆΠΈΡ€ΠΈΠ½Π΅, послС Ρ‡Π΅Π³ΠΎ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°ΡŽ измСнСния

ИспользованиС макросов

Для измСнСния Ρ€Π°Π·ΠΌΠ΅Ρ€Π° ΠΎΠ³Ρ€ΠΎΠΌΠ½ΠΎΠ³ΠΎ количСства ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΎΠΊ Π·Π° Ρ€Π°Π· ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ макросы. Π­Ρ‚ΠΎ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Π°Ρ опция, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰Π°Ρ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ ΠΎΠ΄Π½Ρƒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΡƒΡŽ Π·Π°Π΄Π°Ρ‡Ρƒ ΠΈ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Π΅Π΅ ΠΏΠΎΠ²Ρ‚ΠΎΡ€ Π² дальнСйшСм. НСобходимо просто Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ шаги, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ для измСнСния Ρ€Π°Π·ΠΌΠ΅Ρ€Π° ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ. ΠŸΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ ΠΊ Π΄Π°Π½Π½ΠΎΠΉ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π΅ ΠΌΠΎΠΆΠ½ΠΎ Ρ‡Π΅Ρ€Π΅Π· Π²ΠΊΠ»Π°Π΄ΠΊΡƒ Β«Π’ΠΈΠ΄Β». НахоТу ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ элСмСнт Π² спискС доступных Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, ΠΆΠΌΡƒ ΠΏΠΎ Π½Π΅ΠΌΡƒ для Π²Ρ‹Ρ…ΠΎΠ΄Π° контСкстного мСню, Π·Π°Ρ‚Π΅ΠΌ Π²Ρ‹Π±ΠΈΡ€Π°ΡŽ элСмСнт Β«ΠœΠ°ΠΊΡ€ΠΎΡΡ‹Β».

Π’ΠΎΡ‚ Π² этом Ρ€Π°Π·Π΄Π΅Π»Π΅ я Π±ΡƒΠ΄Ρƒ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ макросы

Π’ Π½ΠΎΠ²ΠΎΠΌ ΠΎΠΊΠ½Π΅ Π² ΠΏΠΎΠ»Π΅ «Имя» Π²Π²Π΅Π΄Ρƒ Π½Π°ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ я ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°ΡŽ Π΄Π°Ρ‚ΡŒ Π½ΠΎΠ²ΠΎΠΌΡƒ макросу, ΠΊ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ, Β«Π Π°Π·ΠΌΠ΅Ρ€Ρ‹Β». ПослС этого ΠΆΠΌΡƒ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡƒ Β«Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒΒ».

Π’Π²ΠΎΠΆΡƒ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ для Π±ΡƒΠ΄ΡƒΡ‰Π΅Π³ΠΎ макроса, Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠΎΡ‚ΠΎΠΌ ΠΆΠΌΡƒ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡƒ Β«Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒΒ»

Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ откроСтся ΠΎΠΊΠ½ΠΎ Β«Microsoft Visual Basic For ApplicationsΒ». ПослС Ρ‡Π΅Π³ΠΎ Π² Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠΌ ΠΏΠΎΠ»Π΅ Π²Π²ΠΎΠΆΡƒ Π²ΠΎΡ‚ Ρ‚Π°ΠΊΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅.

Sub Π Π°Π·ΠΌΠ΅Ρ€Ρ‹

Dim i As Long

With ActiveDocument

For i = 1 To .InlineShapes.Count

With .InlineShapes (i)

.Height = 300

.Width = 800

End With

Next i

End With

End Sub

Π—Π΄Π΅ΡΡŒ я задаю высоту Π² 300 пиксСлСй, Π° ΡˆΠΈΡ€ΠΈΠ½Ρƒ – Π² 800, Π½ΠΎ значСния ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Π΄Π°Ρ‚ΡŒ Π½Π° своС усмотрСниС. ПослС копирования ΡΠΎΡ…Ρ€Π°Π½ΡΡŽ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€, Π½Π°ΠΆΠ°Π² Π½Π° ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΡŽ клавиш Ctrl + S. Π”Π°Π»Π΅Π΅ Π²Ρ‹Ρ…ΠΎΠΆΡƒ ΠΈΠ· этого Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ ΠΎΠΊΠ½Π°.

Π’Π²ΠΎΠΆΡƒ Π΄Π°Π½Π½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π² ΠΏΠΎΠ»Π΅ ΠΈ ΡΠΎΡ…Ρ€Π°Π½ΡΡŽ измСнСния

ПослС этого вновь, Ρ‚Π΅ΠΌ ΠΆΠ΅ способом, ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°ΡŽ ΠΎΠΊΠ½ΠΎ Β«ΠœΠ°ΠΊΡ€ΠΎΡΡ‹Β», Π²Ρ‹Π±ΠΈΡ€Π°ΡŽ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‡Ρ‚ΠΎ созданный ΠΏΡƒΠ½ΠΊΡ‚ ΠΈ ΠΆΠΌΡƒ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡƒ Β«Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒΒ». ПослС этого Ρ€Π°Π·ΠΌΠ΅Ρ€Ρ‹ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ Π±ΡƒΠ΄ΡƒΡ‚ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ автоматичСски ΠΈ ΠΏΠΎΠ΄Π³ΠΎΠ½ΡΡ‚ΡŒΡΡ ΠΏΠΎΠ΄ ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹Π΅ ΠΌΠ½ΠΎΠΉ Ρ€Π°ΠΌΠΊΠΈ.

ΠœΠ°ΠΊΡ€ΠΎΡ Π³ΠΎΡ‚ΠΎΠ², Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΎΡΡ‚Π°Π»ΠΎΡΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ Π½Π°ΠΆΠ°Ρ‚ΠΈΠ΅ΠΌ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡƒ Β«Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒΒ»

Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

ΠœΠ΅Π½ΡΡ‚ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ€Ρ‹ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ Π² Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π΅ Microsoft Word ΠΌΠΎΠΆΠ½ΠΎ нСсколькими способами, ΠΏΡ€ΠΈΡ‡Π΅ΠΌ ΠΊΠ°ΠΊ ΠΊΡƒΡ‡ΠΊΠΎΠΉ, Ρ‚Π°ΠΊ ΠΈ ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΉ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ΅. Π’Ρ‹Π±ΠΈΡ€Π°Ρ‚ΡŒ стоит исходя ΠΈΠ· своих потрСбностСй, ΠΏΡ€ΠΈ этом ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ Π²ΠΈΠ΄ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π° Π² дальнСйшСм. Π’Π΅Π΄ΡŒ Ссли ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΠΎΡ‚Π΅Ρ€ΠΏΠΈΡ‚ ΡΠΈΠ»ΡŒΠ½Ρ‹Π΅ измСнСния, информация Π½Π° Π½Π΅ΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒΡΡ нСдостаточно Ρ‡Π΅Ρ‚ΠΊΠΎ.Β 

Post Views: 17Β 763

Π Π°Π±ΠΎΡ‚Π° с рисунками, ΠΌΠΎΠ΄ΡƒΠ»ΡŒ python-docx Π² Python.

Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅/ΠΈΠ·Π²Π»Π΅Ρ‡Π΅Π½ΠΈΠ΅ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ ΠΈΠ· Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π° docx.

По сути, Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Ρ‹ Word состоят ΠΈΠ· Π΄Π²ΡƒΡ… слоСв: тСкстового ΠΈ слой с ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ°ΠΌΠΈ. Π’ тСкстовом слоС, тСкстовыС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π°ΡŽΡ‚ΡΡ слСва Π½Π°ΠΏΡ€Π°Π²ΠΎ ΠΈ свСрху Π²Π½ΠΈΠ·, начиная Π½ΠΎΠ²ΡƒΡŽ страницу послС заполнСния ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΉ. Π’ слоС ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ, ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ рисунка, Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹Π΅ Ρ„ΠΈΠ³ΡƒΡ€Π°ΠΌΠΈ, Ρ€Π°Π·ΠΌΠ΅Ρ‰Π°ΡŽΡ‚ΡΡ Π² ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½Ρ‹Ρ… мСстах. Иногда ΠΈΡ… Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ ΠΏΠ»Π°Π²Π°ΡŽΡ‰ΠΈΠΌΠΈ Ρ„ΠΈΠ³ΡƒΡ€Π°ΠΌΠΈ.

Π˜Π·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ — это Ρ„ΠΈΠ³ΡƒΡ€Π°, которая ΠΌΠΎΠΆΠ΅Ρ‚ Π²ΡΡ‚Π°Π²Π»ΡΡ‚ΡŒΡΡ Π»ΠΈΠ±ΠΎ Π² тСкстовый, Π»ΠΈΠ±ΠΎ Π² графичСский слой. Если ΠΎΠ½Π° Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° Π² тСкстовой слой, Ρ‚ΠΎ ΠΎΠ½Π° называСтся встроСнной Ρ„ΠΎΡ€ΠΌΠΎΠΉ ΠΈΠ»ΠΈ, Π±ΠΎΠ»Π΅Π΅ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎ, встроСнным ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ.

Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠ°Π½ΠΈΠ΅:
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ встроСнного изобраТСния Π² DOCX.
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅Π³ΠΎ изобраТСния Π² DOCX.
  • Π˜Π·Π²Π»Π΅Ρ‡Π΅Π½ΠΈΠ΅ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΎΠΊ ΠΈΠ· Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π° DOCX.

Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ встроСнного изобраТСния Π² DOCX.

Пока ΠΌΠΎΠ΄ΡƒΠ»ΡŒ python-docx

ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π’ΠžΠ›Π¬ΠšΠž встроСнных ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ

. Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠ΅ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΌ Π°Π±Π·Π°Ρ†Π΅ΠΌ Π² ΠΊΠΎΠ½Π΅Ρ† Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π° ΠΌΠΎΠΆΠ½ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ Document.add_picture(). ΠœΠ΅Ρ‚ΠΎΠ΄ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π½Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Π°Π±Π·Π°Ρ†Π°, Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ вставлСнной ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠΈ

Document.inline_shapes.

По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ, ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ добавляСтся с исходными Ρ€Π°Π·ΠΌΠ΅Ρ€Π°ΠΌΠΈ, Ρ‡Ρ‚ΠΎ часто Π½Π΅ устраиваСт ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ. БобствСнный Ρ€Π°Π·ΠΌΠ΅Ρ€ рассчитываСтся ΠΊΠ°ΠΊ px/dpi. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠΌ 300×300 пиксСлСй с Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ΠΌ 300 Ρ‚ΠΎΡ‡Π΅ΠΊ Π½Π° дюйм появляСтся Π² ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π΅ Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠΌ ΠΎΠ΄ΠΈΠ½ дюйм. ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ Π½Π΅ содСрТат свойства dpi, ΠΈ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΎΠ½ΠΎ приравниваСтся ΠΊ 72 dpi. Π‘Π»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, Ρ‚ΠΎ ΠΆΠ΅ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ ΠΎΠ΄Π½Ρƒ сторону, Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠΌ 4,167 дюйма, Ρ‡Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½Ρƒ страницы.

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π½ΡƒΠΆΠ½ΠΎΠ³ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€Π°, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ Π΅Π³ΠΎ ΡˆΠΈΡ€ΠΈΠ½Ρƒ ΠΈΠ»ΠΈ высоту Π² ΡƒΠ΄ΠΎΠ±Π½Ρ‹Ρ… Π΅Π΄ΠΈΠ½ΠΈΡ†Π°Ρ… измСрСния, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π² ΠΌΠΈΠ»Π»ΠΈΠΌΠ΅Ρ‚Ρ€Π°Ρ… ΠΈΠ»ΠΈ сантимСтрах:

from docx import Document
from docx.shared import Mm
# создаСм Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚
doc = Document()
# ДобавляСм ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ Π°Π±Π·Π°Ρ†
img = doc.add_picture('/path/to/image.jpg', width=Mm(25))
# Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ `Document.inline_shapes`
print(img.type, img.width.mm, img.height.mm)
doc.save('test.docx')

ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΌΠΎΠΆΠ½ΠΎ Π΅Ρ‰Π΅ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠ°ΠΊ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΡ€ΠΎΠ³ΠΎΠ½ Run.add_picture() ВстроСнныС Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ изобраТСния, ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‚ΡΡ ΠΊΠ°ΠΊ большой тСкстовый символ (Π³Π»ΠΈΡ„ символа). Высота строки увСличиваСтся Π½Π° высоту изобраТСния, ΠΏΡ€ΠΈ этом ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ ΡƒΠΌΠ΅Π½ΡŒΡˆΠΈΡ‚ΡΡ ΠΏΠΎ ΡˆΠΈΡ€ΠΈΠ½Π΅, Ρ‡Ρ‚ΠΎ Π±Ρ‹ ΡƒΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒΡΡ Ρ‚ΠΎΡ‡Π½ΠΎ Ρ‚Π°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ тСкст. Вставка тСкста ΠΏΠ΅Ρ€Π΅Π΄ Π½ΠΈΠΌ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Ρ‚ ΠΊ Π΅Π³ΠΎ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π΅Π½ΠΈΡŽ Π²ΠΏΡ€Π°Π²ΠΎ. Часто ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ помСщаСтся Π² Π°Π±Π·Π°Ρ† ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ, Π½ΠΎ это Π½Π΅ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ. Π”ΠΎ ΠΈ послС Π½Π΅Π³ΠΎ Π² Π°Π±Π·Π°Ρ†Π΅, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΎΠ½ Ρ€Π°Π·ΠΌΠ΅Ρ‰Π΅Π½, ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ тСкст.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€:

from docx import Document
from docx.shared import Mm
from docx.enum.text import WD_ALIGN_PARAGRAPH
# создаСм Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚
doc = Document()
# ДобавляСм пустой Π°Π±Π·Π°Ρ†
p = doc.add_paragraph()
# ДобавляСм пустой ΠΏΡ€ΠΎΠ³ΠΎΠ½
run = p.add_run()
# Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π² ΠΏΡ€ΠΎΠ³ΠΎΠ½ вставляСм ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ
run.add_picture('/path/to/image.jpg', width=Mm(25))
# Π²Ρ‹Ρ€Π°Π²Π½ΠΈΠ²Π°Π΅ΠΌ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ посСрСдинС страницы
p.alignment =  WD_ALIGN_PARAGRAPH.CENTER
# Π½Π° Π²Ρ‚ΠΎΡ€ΠΎΠΉ страницС располоТим 
# тСкст Π΄ΠΎ ΠΈ послС ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠΈ
doc.add_page_break()
p = doc.add_paragraph()
run = p.add_run('ВСкст Π΄ΠΎ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠΈ')
run.add_picture('/path/to/image.jpg', width=Mm(25))
run.add_text('тСкст послС ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠΈ')
doc.save('test.docx')

Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅Π³ΠΎ изобраТСния Π² DOCX.

Вставка Π² Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ DOCX ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅Π³ΠΎ изобраТСния Π΅Ρ‰Π΅ Π½Π΅ поддСрТиваСтся ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΌ python-docx. Но, ΠΎΡΠ½ΠΎΠ²Ρ‹Π²Π°ΡΡΡŒ Π½Π° Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ создания встроСнной ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠΈ, ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΎΠ±Ρ…ΠΎΠ΄Π½ΠΎΠΉ ΠΏΡƒΡ‚ΡŒ.

Если ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Π½Π° структуру XML, ΡΠΎΠ·Π΄Π°Π½Π½ΡƒΡŽ DOCX, Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ различия ΠΌΠ΅ΠΆΠ΄Ρƒ встроСнной ΠΈ ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠΎΠΉ:

  • встроСнноС ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ — это ΡƒΠ·Π΅Π» <wp:inline> ΠΏΠΎΠ΄ <w:drawing>;
  • ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅Π΅ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ — это ΡƒΠ·Π΅Π» <wp:anchor> ΠΏΠΎΠ΄ <w:drawing>;
  • ΠΏΠΎΠΌΠΈΠΌΠΎ всСх ΠΏΠΎΠ΄ΡƒΠ·Π»ΠΎΠ² встроСнного изобраТСния, ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅Π΅ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ содСрТит Ρ‚Π°ΠΊΠΆΠ΅ <wp:positionH> ΠΈ <wp:positionV> для опрСдСлСния фиксированной ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ.

ИдСя состоит Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ вмСсто ΡƒΠ·Π»Π° <wp:inline> Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ ΡƒΠ·Π΅Π» <wp:anchor>, Π° Π·Π°Ρ‚Π΅ΠΌ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΊ ΡƒΠΆΠ΅ ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΠΌΡΡ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°ΠΌ inline (встроСнной) ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΏΠΎΠ΄ΡƒΠ·Π»Ρ‹ <wp:positionH> ΠΈ <wp:positionV>.

Π‘ΠΌΠΎΡ‚Ρ€ΠΈΠΌ:

from docx.oxml import parse_xml, register_element_cls
from docx.
oxml.ns import nsdecls from docx.oxml.shape import CT_Picture from docx.oxml.xmlchemy import BaseOxmlElement, OneAndOnlyOne # смотритС: docx.oxml.shape.CT_Inline class CT_Anchor(BaseOxmlElement): """ Π­Π»Π΅ΠΌΠ΅Π½Ρ‚ `<w:anchor>`, ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ для ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅Π³ΠΎ изобраТСния. """ extent = OneAndOnlyOne('wp:extent') docPr = OneAndOnlyOne('wp:docPr') graphic = OneAndOnlyOne('a:graphic') @classmethod def _anchor_xml(cls, pos_x, pos_y): """ Π‘Ρ‚ΠΈΠ»ΡŒ пСрСноса тСкста: `<wp:anchor behindDoc="0">`; ПолоТСниС изобраТСния: `<wp:positionH relativeFrom="page">`; ΠžΠ±Ρ‚Π΅ΠΊΠ°Π½ΠΈΠ΅ тСкста: `<wp:wrapSquare wrapText="largest"/>`. """ return ( '<wp:anchor behindDoc="0" distT="0" distB="0" distL="0" distR="0"' ' simplePos="0" layoutInCell="1" allowOverlap="1" relativeHeight="2"' f' {nsdecls("wp", "a", "pic", "r")}>' ' <wp:simplePos x="0" y="0"/>' ' <wp:positionH relativeFrom="page">' f' <wp:posOffset>{int(pos_x)}</wp:posOffset>' ' </wp:positionH>' ' <wp:positionV relativeFrom="page">' f' <wp:posOffset>{int(pos_y)}</wp:posOffset>' ' </wp:positionV>' ' <wp:extent />' ' <wp:wrapSquare wrapText="largest"/>' ' <wp:docPr />' ' <wp:cNvGraphicFramePr>' ' <a:graphicFrameLocks noChangeAspect="1"/>' ' </wp:cNvGraphicFramePr>' ' <a:graphic>' ' <a:graphicData>' ' </a:graphicData>' ' </a:graphic>' '</wp:anchor>' ) @classmethod def new(cls, cx, cy, shape_id, pic, pos_x, pos_y): """ Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π½ΠΎΠ²Ρ‹ΠΉ элСмСнт `<wp:anchor>`, Π·Π°ΠΏΠΎΠ»Π½Π΅Π½Π½Ρ‹ΠΉ ΠΏΠ΅Ρ€Π΅Π΄Π°Π½Π½Ρ‹ΠΌΠΈ значСниями Π² качСствС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ².
""" anchor = parse_xml(cls._anchor_xml(pos_x, pos_y)) anchor.extent.cx = cx anchor.extent.cy = cy anchor.docPr.id = shape_id anchor.docPr.name = f'Picture {shape_id}' anchor.graphic.graphicData.uri = ( 'http://schemas.openxmlformats.org/drawingml/2006/picture') anchor.graphic.graphicData._insert_pic(pic) return anchor @classmethod def new_pic_anchor(cls, shape_id, rId, filename, cx, cy, pos_x, pos_y): """ Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π½ΠΎΠ²Ρ‹ΠΉ элСмСнт `wp:anchor`, содСрТащий элСмСнт `pic:pic` задаСтся значСниями Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ². """ pic_id = 0 # Word, ΠΏΠΎΡ…ΠΎΠΆΠ΅, Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ это, Π½ΠΎ ΠΈ Π½Π΅ опускаСт Π΅Π³ΠΎ pic = CT_Picture.new(pic_id, filename, rId, cx, cy) anchor = cls.new(cx, cy, shape_id, pic, pos_x, pos_y) anchor.graphic.graphicData._insert_pic(pic) return anchor # смотритС: docx.parts.story.BaseStoryPart.new_pic_inline def new_pic_anchor(part, image_descriptor, width, height, pos_x, pos_y): """ Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ вновь созданный элСмСнт `w:anchor`.
Π­Π»Π΅ΠΌΠ΅Π½Ρ‚ содСрТит ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅, ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠ΅ Π² *image_descriptor*, ΠΈ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΡƒΠ΅Ρ‚ΡΡ Π½Π° основС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ *width* ΠΈ *height*. """ rId, image = part.get_or_add_image(image_descriptor) cx, cy = image.scaled_dimensions(width, height) shape_id, filename = part.next_id, image.filename return CT_Anchor.new_pic_anchor(shape_id, rId, filename, cx, cy, pos_x, pos_y) # смотритС: docx.text.run.add_picture def add_float_picture(p, image_path_or_stream, width=None, height=None, pos_x=0, pos_y=0): """ ДобавляСт ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅Π΅ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π² фиксированном ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ "pos_x" ΠΈ "pos_y", отсчСт - Π»Π΅Π²Ρ‹ΠΉ Π²Π΅Ρ€Ρ…Π½ΠΈΠΉ ΡƒΠ³ΠΎΠ». """ run = p.add_run() anchor = new_pic_anchor(run.part, image_path_or_stream, width, height, pos_x, pos_y) run._r.add_drawing(anchor) # смотритС: docx.oxml.shape.__init__.py register_element_cls('wp:anchor', CT_Anchor) if __name__ == '__main__': from docx import Document from docx.shared import Mm doc = Document() # Π΄ΠΎΠ±Π°Π²ΠΈΠΌ ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅Π΅ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ p = doc.
add_paragraph() add_float_picture(p, '/path/to/image.jpg', width=Mm(25), pos_x=Mm(30), pos_y=Mm(30)) # Π΄ΠΎΠ±Π°Π²ΠΈΠΌ тСкст p.add_run('тСкст Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°. ' * 50) doc.save('test.docx')

Π˜Π·Π²Π»Π΅Ρ‡Π΅Π½ΠΈΠ΅ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΎΠΊ ΠΈΠ· Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π° DOCX.

Π’Π°ΠΊ ΠΊΠ°ΠΊ Ρ„Π°ΠΉΠ» Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π° MS Word с Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ΠΌ .docx прСдставляСт собой простой zip-Π°Ρ€Ρ…ΠΈΠ², Ρ‚ΠΎ ΠΈΠ·Π²Π»Π΅Ρ‡Π΅Π½ΠΈΠ΅ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΎΠΊ сводится ΠΊ распоковки zip-Π°Ρ€Ρ…ΠΈΠ²Π°, поиска ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΎΠΊ ΠΈ ΠΈΠ·Π²Π»Π΅Ρ‡Π΅Π½ΠΈΠ΅ ΠΈΡ… Π² ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΡƒΡŽ ΠΏΠ°ΠΏΠΊΡƒ.

Π’ΠΎ врСмя извлСчСния ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΎΠΊ, ΠΈΡ… ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎ ΠΈΠΌΠ΅Π½ΠΈ ZipInfo.filename, Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡŽ, Ρ€Π°Π·ΠΌΠ΅Ρ€Ρƒ ZipInfo.file_size ΠΈ Ρ‚.Π΄.

import zipfile, pathlib
# ΡƒΠΊΠ°ΠΆΠΈΡ‚Π΅ Ρ„Π°ΠΉΠ»
docx = 'test.docx'
# дирСктория для извлСчСния
ex_dir = pathlib.Path(f'pic_{docx}')
if not ex_dir.is_dir():
    ex_dir.mkdir()
with zipfile.ZipFile(docx) as zf:
    for name in zf.infolist():
        if name.filename.startswith('word/media/'):
            # здСсь ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Π΄Π°Ρ‚ΡŒ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΠΈ, 
            # Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΎΡ‚ΠΎΠ±Ρ€Π°Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠΈ с ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΌ ΠΈΠΌΠ΅Π½Π΅ΠΌ, 
            # Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ΠΌ, Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠΌ `name. file_size` ΠΈ Ρ‚.Π΄. 
            zf.extract(name, ex_dir)

Π£Ρ‡Π΅Π±Π½ΠΎΠ΅ пособиС ΠΏΠΎ добавлСнию тСкста ΠΊ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΡŽ с Π»ΡŽΠ±Ρ‹ΠΌ ΡˆΡ€ΠΈΡ„Ρ‚ΠΎΠΌ, Ρ†Π²Π΅Ρ‚ΠΎΠΌ ΠΈ стилСм

ПослСднСС ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ 13 ноября 2021 Π³., ΠŸΠΈΡ‚Π΅Ρ€ Π’ΡƒΠ΄


Π˜Π·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ стоит тысячи слов. Но Ссли Π²Ρ‹ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚Π΅ ΠΊ Ρ„ΠΎΡ‚ΠΎΠ³Ρ€Π°Ρ„ΠΈΠΈ тСкст , Π²Ρ‹ смоТСтС ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ большС чувств ΠΈ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ, Ρ‡Π΅ΠΌ просто ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ°. Π•ΡΡ‚ΡŒ ΠΌΠ½ΠΎΠ³ΠΎ ситуаций добавлСния тСкста ΠΊ изобраТСниям. НапримСр, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ тСкстовый водяной Π·Π½Π°ΠΊ Π½Π° свою Ρ„ΠΎΡ‚ΠΎΠ³Ρ€Π°Ρ„ΠΈΡŽ для Π·Π°Ρ‰ΠΈΡ‚Ρ‹ авторских ΠΏΡ€Π°Π². Π’Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ подписи, Π·Π°ΠΌΠ΅Ρ‚ΠΊΠΈ, ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ слова ΠΊ своСму ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΡŽ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΡΠΈΠ»ΠΈΡ‚ΡŒ ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ ΠΌΠΎΠΌΠ΅Π½Ρ‚Ρ‹. Π’ любом случаС, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΏΠΎΠ»Π½ΠΎΠ΅ руководство здСсь.

Π§Π°ΡΡ‚ΡŒ 1. Как Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ тСкст ΠΊ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΡŽ Π² Windows ΠΈ Mac

Для Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π° Ρ„ΠΎΡ‚ΠΎΠ³Ρ€Π°Ρ„ΠΎΠ² Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ тСкста ΠΊ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΡŽ являСтся Ρ‡Π°ΡΡ‚ΡŒΡŽ процСсса. Π’Π°ΠΌ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡ‚ΡŒΡΡ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ€, ΠΏΠΎΠ²Π΅Ρ€Π½ΡƒΡ‚ΡŒ ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ эффСкты рСдактирования Ρ„ΠΎΡ‚ΠΎΠ³Ρ€Π°Ρ„ΠΈΠΉ. Π§Ρ‚ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ, Ссли Ρƒ вас Π΅ΡΡ‚ΡŒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ Ρ„ΠΎΡ‚ΠΎΠ³Ρ€Π°Ρ„ΠΈΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½ΡƒΠΆΠ½ΠΎ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ? Π’ Ρ‚Π΅Ρ‡Π΅Π½ΠΈΠ΅ этого Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ WidsMob ImageConvert ΠΌΠΎΠΆΠ΅Ρ‚ ΡΡ‚Π°Ρ‚ΡŒ вашим Ρ€Π°Π·ΡƒΠΌΠ½Ρ‹ΠΌ Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ сотни ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ Π½Π° Mac. Π§Ρ‚ΠΎ ΠΆ, Ρ‚Π°ΠΊΠΆΠ΅ поддСрТиваСтся ΠΏΠ°ΠΊΠ΅Ρ‚Π½ΠΎΠ΅ Ρ€Π°Π·ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅ тСкста ΠΏΠΎΠ²Π΅Ρ€Ρ… Π·Π°Π³Ρ€ΡƒΠΆΠ΅Π½Π½ΠΎΠ³ΠΎ ΠΈΠ»ΠΈ Π·Π°Ρ…Π²Π°Ρ‡Π΅Π½Π½ΠΎΠ³ΠΎ изобраТСния. Π”Π°Π²Π°ΠΉΡ‚Π΅ посмотрим, Ρ‡Ρ‚ΠΎ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΎΡ‚ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния для рСдактирования Ρ„ΠΎΡ‚ΠΎΠ³Ρ€Π°Ρ„ΠΈΠΉ.

1. Π”ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ тСкст ΠΊ Ρ„ΠΎΡ‚ΠΎΠ³Ρ€Π°Ρ„ΠΈΠΈ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ настраиваСмого ΡˆΡ€ΠΈΡ„Ρ‚Π°, стиля, Ρ†Π²Π΅Ρ‚Π°, Ρ€Π°Π·ΠΌΠ΅Ρ€Π°, ΡƒΠ³Π»Π° ΠΈ полоТСния.

2. НакройтС ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ своим ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ с Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΎΠΉ Π½Π΅ΠΏΡ€ΠΎΠ·Ρ€Π°Ρ‡Π½ΠΎΡΡ‚ΡŒΡŽ, ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΎΠΌ, ΡƒΠ³Π»ΠΎΠΌ ΠΈ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ.

3. ΠŸΠ°ΠΊΠ΅Ρ‚Π½Ρ‹ΠΉ ΠΏΠΎΠ²ΠΎΡ€ΠΎΡ‚, ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Ρ€Π°Π·ΠΌΠ΅Ρ€Π°, ΠΏΠ΅Ρ€Π΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π³Ρ€Π°Π½ΠΈΡ†Ρ‹.

4. Π‘ΡƒΠΏΠ΅Ρ€ высокая ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈ высокоС качСство ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ†ΠΈΠΈ.