edyaqq 0 / 0 / 0 Регистрация: 25.04.2020 Сообщений: 49 |
||||
1 |
||||
10.05.2020, 20:35. Показов 5375. Ответов 2 Метки нет (Все метки)
Вот мой код:
Нужно поменять шрифт на Courier New, как это сделать?
__________________
0 |
Programming Эксперт 94731 / 64177 / 26122 Регистрация: 12.04.2006 Сообщений: 116,782 |
10.05.2020, 20:35 |
Ответы с готовыми решениями: Поменять шрифт в матлаб 13 Как поменять шрифт Добавлено через 17 минут Как поменять шрифт? Как поменять шрифт? 2 |
Заклинатель змей 611 / 508 / 213 Регистрация: 30.04.2016 Сообщений: 2,412 |
|
10.05.2020, 23:30 |
2 |
edyaqq, поменять где? Что программа получает на вход и что должна вернуть? Добавлено через 1 минуту
0 |
814 / 526 / 214 Регистрация: 22.12.2017 Сообщений: 1,495 |
|
11.05.2020, 07:25 |
3 |
0 |
IT_Exp Эксперт 87844 / 49110 / 22898 Регистрация: 17.06.2006 Сообщений: 92,604 |
11.05.2020, 07:25 |
3 |
#python #python-pptx
Вопрос:
pptx** Сообщество!
Не могли бы вы, пожалуйста, подсказать мне, является ли приведенный ниже метод правильным подходом к форматированию текста?
Другими словами, должен ли я добавлять: p
, run
, и все свойства шрифта в каждый текст, который я добавляю в PPTX?
Большое вам спасибо за вашу помощь!
from pptx import Presentation
from pptx.dml.color import RGBColor
from pptx.enum.dml import MSO_THEME_COLOR
from pptx.enum.shapes import MSO_SHAPE
from pptx.enum.text import MSO_ANCHOR, MSO_AUTO_SIZE
from pptx.util import Inches, Pt
prs = Presentation('./data/template.pptx')
cover = prs.slides.add_slide(prs.slide_layouts[0])
pptTitle_Shape = cover.shapes.add_textbox(Inches(0.31), Inches(0.54), 0.61, 9.38)
pptTitle_TextFrame = pptTitle_Shape.text_frame
p = pptTitle_TextFrame.paragraphs[0]
run = p.add_run()
run.text = 'Cover Page Title Name'
font = run.font
font.name = 'Arial'
font.size = Pt(40)
font.bold = False
font.color.rgb = RGBColor(255, 255, 255)
pptCustomerName_Shape = cover.shapes.add_textbox(Inches(0.31), Inches(2.03), 4.5, 0.4)
pptCustomerName_TextFrame = pptCustomerName_Shape.text_frame
p = pptCustomerName_TextFrame.paragraphs[0]
run = p.add_run()
run.text = 'Customer Name'
font = run.font
font.name = 'Arial'
font.size = Pt(28)
font.bold = False
font.color.rgb = RGBColor(255, 255, 255)
pptSEName_Shape = cover.shapes.add_textbox(Inches(0.31), Inches(2.51), 4.5, 0.4)
pptSEName_TextFrame = pptSEName_Shape.text_frame
p = pptSEName_TextFrame.paragraphs[0]
run = p.add_run()
run.text = 'FirstName LName'
font = run.font
font.name = 'Arial'
font.size = Pt(20)
font.bold = False
font.color.rgb = RGBColor(255, 255, 255)
Ответ №1:
Чтобы дополнить ответ Сканни, я создал набор функций для применения форматирования к нескольким различным объектам python-pptx
. Функции довольно длинные, поскольку они реализуют все типы форматирования, такие как выравнивание шрифтов, цвета границ, прозрачность, поля и т.д. Но вы можете найти их в следующей сути: https://gist.github.com/Fredericco72/c21505ebfb354461bc4b7b857764d5d2
Они напрямую соответствуют логике, предоставляемой Scanny, но это позволяет вам делать следующее:
slide = prs.slides.add_slide(prs.slide_layouts[0])
shape = slide.shapes.add_shape(
MSO_SHAPE.RECTANGLE,
left=Cm(1),
top=Cm(1),
width=Cm(10),
height=Cm(3)
)
format_shape(
shape,
fill_color="BLUE",
border_color="RED"
)
format_text_frame(
shape.text_frame,
font_size=15,
font_color="WHITE",
font_align=PP_ALIGN.RIGHT
)
Чтобы вы могли использовать понятные названия для таких цветов, как BLUE
«и RED
«, вам нужно настроить файл сопоставления, или вы можете просто пройти fill_color=RGBColor(255, 255, 255)
.
Комментарии:
1. Отлично! Спасибо, @Fred.
Ответ №2:
Нет, как правило, нет. Есть несколько ярлыков, и значения по умолчанию должны работать нормально большую часть времени.
Типичная операция добавления формы выглядит следующим образом:
shape = shapes.add_shape(...)
shape.text = "foobar"
Нет необходимости явно обращаться к текстовому фрейму для добавления текста, форма, которая принимает текст, обладает .text
свойством записи.
В общем, шрифт по умолчанию (форматирование символов) будет работать нормально. Это включает в себя выполнение работы в стартовом файле «шаблон» .pptx, чтобы установить по умолчанию то, что вы хотите для большей части текста. Эти значения по умолчанию будут установлены на уровне темы и презентации по умолчанию, а также в заполнителях на макетах слайдов. Обычно вы делаете это вручную, используя PowerPoint, так как это делается один раз за шаблон, а не один раз за сгенерированную презентацию.
Возможно, наиболее распространенной «настройкой» было бы изменение размера шрифта для определенной формы. Это было бы:
shape.text_frame.paragraphs[0].font.size = Pt(12)
Если вы обнаружите, что делаете это чаще, чем иногда, вы можете запустить некоторые полезные функции:
def shape_set_font_size(shape, points):
for paragraph in shape.text_frame.paragraphs:
paragraph.font.size = Pt(points)
shape_set_font_size(shape, 12)
shape_set_font_size(shape_2, 18)
Каждый _Run
объект имеет шрифт и определенный непрерывный интервал («прогон») символов, включая, возможно, нулевые символы («»). Все символы в запуске имеют один и тот же шрифт, и любые настройки, которые вы задаете на этом уровне, переопределяют любые настройки на более высоких уровнях, которые в противном случае могли бы быть «унаследованы».
У каждого _Paragraph
объекта также есть .font
свойство, но это шрифт по умолчанию для запусков внутри этого абзаца. Эти характеристики шрифта будут применяться, за исключением случаев, когда запуск переопределяет их настройкой на своем уровне.
Так что правильный поступок в какой-то степени зависит от ситуации. Например, если вы использовали следующее, вы обязательно установите шрифт для всего текста, находящегося в данный момент в абзаце, но не для добавляемого нового текста (который получает новые прогоны).:
def shape_set_font_size(shape, points):
for paragraph in shape.text_frame.paragraphs:
for run in paragraph.runs:
run.font.size = Pt(points)
Я рекомендую вам избегать _Run
шрифта уровня, за исключением случаев, когда вы хотите подчеркнуть какое-то конкретное слово или фразу, скажем, выделив ее жирным шрифтом или курсивом. В противном _Paragraph
случае-уровень работает нормально и является более гибким.
Комментарии:
1. Это потрясающе! Огромное спасибо.
Я хочу изменить размер шрифта и стиль шрифта заголовка слайда. Я также хочу подчеркнуть название. Как это сделать?
from pptx import Presentation
prs = Presentation(ppt_filename)
slide = prs.slides[0]
slide.shapes.title.text = 'New Title'
slide.shapes.title.top = 100
slide.shapes.title.left = 100
slide.shapes.title.height = 200
2 ответа
Это может быть немного хакерским, но это работает.
Согласно документам, вы можете получить доступ к text_frame
форма заполнителя заголовка.
Благодаря этому вы можете получить Paragraph
объекты в этом фрейме с paragraphs
атрибут. В elements здесь вы можете видеть, что фигура-заполнитель title
находится в первом индексе (если он существует).
Теперь мы можем получить Font
используется в абзаце, и измените его различные атрибуты следующим образом:
from pptx import Presentation
from pptx.util import Pt
prs = Presentation(ppt_filename)
slide = prs.slides[0]
slide.shapes.title.text = 'New Title'
slide.shapes.title.top = 100
slide.shapes.title.left = 100
slide.shapes.title.height = 200
title_para = slide.shapes.title.text_frame.paragraphs[0]
title_para.font.name = "Comic Sans MS"
title_para.font.size = Pt(72)
title_para.font.underline = True
Дополнительные ссылки:
text.Font
— Дополнительные атрибуты шрифта, которые вы можете редактировать.util.Pt
— Настройка размера шрифта.
2
Diggy.
20 Янв 2021 в 14:27
Для применения стиля шрифта:
slide.shapes.title.font.name = 'Calibri'
Для изменения размера шрифта:
from pptx.util import Pt
slide.shapes.title.font.size = Pt(20)
1
frab
20 Янв 2021 в 14:06
Improve Article
Save Article
Improve Article
Save Article
python-pptx is library used to create/edit a PowerPoint (.pptx) files. This won’t work on MS office 2003 and previous versions. We can add shapes, paragraphs, texts and slides and much more thing using this library.
Installation: Open the command prompt on your system and write given below command:
pip install python-pptx
Let’s see some of its usage:
Example 1: Creating new PowerPoint file with title and subtitle slide.
Python3
from
pptx
import
Presentation
root
=
Presentation()
first_slide_layout
=
root.slide_layouts[
0
]
slide
=
root.slides.add_slide(first_slide_layout)
slide.shapes.title.text
=
" Created By python-pptx"
slide.placeholders[
1
].text
=
" This is 2nd way"
root.save(
"Output.pptx"
)
print
(
"done"
)
Output:
Example 2: Adding Text-Box in PowerPoint.
Python3
from
pptx
import
Presentation
from
pptx.util
import
Inches, Pt
ppt
=
Presentation()
blank_slide_layout
=
ppt.slide_layouts[
6
]
slide
=
ppt.slides.add_slide(blank_slide_layout)
left
=
top
=
width
=
height
=
Inches(
1
)
txBox
=
slide.shapes.add_textbox(left, top,
width, height)
tf
=
txBox.text_frame
tf.text
=
"This is text inside a textbox"
p
=
tf.add_paragraph()
p.text
=
"This is a second paragraph that's bold and italic"
p.font.bold
=
True
p.font.italic
=
True
p
=
tf.add_paragraph()
p.text
=
"This is a third paragraph that's big "
p.font.size
=
Pt(
40
)
ppt.save(
'test_2.pptx'
)
print
(
"done"
)
Output:
Example 3: PowerPoint (.pptx) file to Text (.txt) file conversion.
Python3
from
pptx
import
Presentation
ppt
=
Presentation(
"sample.pptx"
)
File_to_write_data
=
open
(
"File_To_Extract_ppt.txt"
,
"w"
)
for
slide
in
ppt.slides:
for
shape
in
slide.shapes:
if
not
shape.has_text_frame:
continue
for
paragraph
in
shape.text_frame.paragraphs:
for
run
in
paragraph.runs:
File_to_write_data.write(run.text)
File_to_write_data.close()
print
(
"Done"
)
Output:
Example 4: Inserting image into the PowerPoint file.
Python3
from
pptx
import
Presentation
from
pptx.util
import
Inches
img_path
=
'bg_bg.png'
ppt
=
Presentation()
blank_slide_layout
=
ppt.slide_layouts[
6
]
slide
=
ppt.slides.add_slide(blank_slide_layout)
left
=
top
=
Inches(
1
)
pic
=
slide.shapes.add_picture(img_path,
left, top)
left
=
Inches(
1
)
height
=
Inches(
1
)
pic
=
slide.shapes.add_picture(img_path, left,
top, height
=
height)
ppt.save(
'test_4.pptx'
)
print
(
"Done"
)
Output:
Example 5: Adding Charts to the PowerPoint file.
Python3
from
pptx
import
Presentation
from
pptx.chart.data
import
CategoryChartData
from
pptx.enum.chart
import
XL_CHART_TYPE
from
pptx.util
import
Inches
ppt
=
Presentation()
slide
=
ppt.slides.add_slide(ppt.slide_layouts[
6
])
chart_data
=
CategoryChartData()
chart_data.categories
=
[
'East'
,
'West'
,
'Midwest'
]
chart_data.add_series(
'Series 1'
,
(
int
(
input
(
"Enter Value:"
)),
int
(
input
(
"Enter Value:"
)),
int
(
input
(
"Enter Value:"
))))
x, y, cx, cy
=
Inches(
2
), Inches(
2
), Inches(
6
), Inches(
4.5
)
slide.shapes.add_chart( XL_CHART_TYPE.COLUMN_CLUSTERED, x,
y, cx, cy, chart_data )
ppt.save(
'chart-Tutorial.pptx'
)
print
(
"done"
)
Output:
Example 6: Adding tables to the PowerPoint file.
Python3
from
pptx
import
Presentation
from
pptx.util
import
Inches
ppt
=
Presentation()
slide
=
ppt.slides.add_slide(ppt.slide_layouts[
6
])
x, y, cx, cy
=
Inches(
2
), Inches(
2
), Inches(
4
), Inches(
1.5
)
shape
=
slide.shapes.add_table(
3
,
4
, x,
y, cx, cy)
ppt.save(
"Tabel_Tutorial.pptx"
)
print
(
"done"
)
Output: