Текст по умолчанию вертикальный, а на слайде слишком много объектов ReporteRs R

Когда я помещаю на слайд более девяти объектов, самые новые объекты по умолчанию становятся вертикальными (это происходит с текстом, не уверен насчет графиков или изображений). У моей компании есть привычка размещать на слайде слишком много информации, но они хотят сохранить тот же формат, если это вообще возможно. Я не был уверен, есть ли в пакете ReporteRs возможность установить максимальное количество объектов, или, может быть, это проблема с одной из зависимостей для запуска пакета. Прикреплю скриншот и код. Я создал пустой документ под названием Presentation1.pptx и поместил его в свой рабочий каталог.

введите здесь описание изображения

Код:

library("ReporteRs")

pres <- pptx(template = "Presentation1.pptx")
pres <- addSlide(pres, slide.layout = 'Blank')

pres <- addParagraph(par.properties = parProperties(),
                 doc = pres, text.align = "left", value = pot("SOME TEXT", 
                 textBold(color = "black", font.size = 36, font.family = "Arial")),
                 offx = 0.5, offy = 0, width = 0, height = 1)

pres <-addParagraph(par.properties = parProperties(list.style = "unordered", level = 1),
                doc = pres, text.align = "left", value = pot("Some Text",
                textBoldItalic(color = "black", font.size = 21, font.family = "Arial")),
                offx = 0.25, offy = 1, width = 0, height = 1)

pres <-addParagraph(par.properties = parProperties(list.style = "unordered", level = 2),
                doc = pres, text.align = "left", value = pot("Some Text",
                textBoldItalic(color = "black", font.size = 17, font.family = "Arial")),
                offx = 0.75, offy = 1.5, width = 0, height = 1)

pres <-addParagraph(par.properties = parProperties(list.style = "unordered", level = 2),
                doc = pres, text.align = "left", value = pot("Some Text",
                textBoldItalic(color = "black", font.size = 17, font.family = "Arial")),
                offx = 0.75, offy = 2, width = 0, height = 1)

pres <-addParagraph(par.properties = parProperties(list.style = "unordered", level = 1),
                doc = pres, text.align = "left", value = pot("Some Text",
                textBoldItalic(color = "black", font.size = 21, font.family = "Arial")),
                offx = 0.25, offy = 2.5, width = 0, height = 1)

pres <-addParagraph(par.properties = parProperties(list.style = "unordered", level = 2),
                doc = pres, text.align = "left", value = pot("Some Text",
                textBoldItalic(color = "black", font.size = 17, font.family = "Arial")),
                offx = 0.75, offy = 3, width = 0, height = 1)

pres <-addParagraph(par.properties = parProperties(list.style = "unordered", level = 2),
                doc = pres, text.align = "left", value = pot("Some Text",
                textBoldItalic(color = "black", font.size = 17, font.family = "Arial")),
                offx = 0.75, offy = 3.5, width = 0, height = 1)

pres <-addParagraph(par.properties = parProperties(list.style = "unordered", level = 2),
                doc = pres, text.align = "left", value = pot("Some Text",
                textBoldItalic(color = "black", font.size = 17, font.family = "Arial")),
                offx = 0.75, offy = 4, width = 0, height = 1)

pres <-addParagraph(par.properties = parProperties(list.style = "unordered", level = 2),
                doc = pres, text.align = "left", value = pot("Some Text",
                textBoldItalic(color = "black", font.size = 17, font.family = "Arial")),
                offx = 0.75, offy = 4.5, width = 0, height = 1)

pres <-addParagraph(par.properties = parProperties(list.style = "unordered", level = 2),
                doc = pres, text.align = "left", value = pot("Some Text",
                textBoldItalic(color = "black", font.size = 17, font.family = "Arial")),
                offx = 0.75, offy = 5, width = 0, height = 1)

pres <-addParagraph(par.properties = parProperties(list.style = "unordered", level = 2),
                doc = pres, text.align = "left", value = pot("Copyright Text",
                textBoldItalic(color = "black", font.size = 17, font.family = "Arial")),
                offx = 3, offy = 7, width = 0, height = 1)

writeDoc(pres, file = "pres.pptx")

person Iwannabe Theguy    schedule 31.08.2017    source источник


Ответы (1)


Сначала перейдите к пакету officer, если это возможно, и прочитайте эту страницу: https://davidgohel.github.io/officer/articles/powerpoint.html#append-text-sequentially-in-a-shape.

В вашем сценарии вы используете ширину, установленную на 0, и новую форму для каждого нового абзаца. text.align не является аргументом addParagraph. Итак, давайте упростим:

library(ReporteRs)
pres <- pptx()
pres <- addSlide(pres, slide.layout = 'Title and Content')

style_36 <- textBold(color = "black", font.size = 36, font.family = "Arial")
style_17 <- textBoldItalic(color = "black", font.size = 17, font.family = "Arial")
style_21 <- textBoldItalic(color = "black", font.size = 21, font.family = "Arial")

par_lev_1 <- parProperties(list.style = "unordered", level = 1)
par_lev_2 <- parProperties(list.style = "unordered", level = 2)
par_lev_3 <- parProperties(list.style = "unordered", level = 3)

pres <- addParagraph(par.properties = parProperties(), doc = pres, value = pot("SOME TEXT", style_36),
                     offx = 0.5, offy = 0, width = 8, height = 6)

pres <-addParagraph(par.properties = par_lev_1, append = TRUE, 
                    doc = pres, value = pot("Some Text", style_21) )

pres <-addParagraph(par.properties = par_lev_2, append = TRUE, 
                    doc = pres, value = pot("Some Text", style_17) )

pres <-addParagraph(par.properties = par_lev_2, append = TRUE, 
                    doc = pres, value = pot("Some Text", style_17) )

pres <-addParagraph(par.properties = par_lev_3, append = TRUE, 
                    doc = pres, value = pot("Some Text", style_21) )

pres <-addParagraph(par.properties = par_lev_2, append = TRUE, 
                    doc = pres, value = pot("Some Text", style_17) )

pres <-addParagraph(par.properties = par_lev_2, append = TRUE, 
                    doc = pres, value = pot("Some Text", style_17) )

pres <-addParagraph(par.properties = par_lev_2, append = TRUE, 
                    doc = pres, value = pot("Some Text", style_17) )

pres <-addParagraph(par.properties = par_lev_2, append = TRUE, 
                    doc = pres, value = pot("Some Text",style_17) )

pres <-addParagraph(par.properties = par_lev_2, append = TRUE, 
                    doc = pres, value = pot("Some Text", style_17) )

pres <-addParagraph(par.properties = par_lev_3, append = TRUE, 
                    doc = pres, value = pot("Copyright Text", style_21) )

writeDoc(pres, file = "pres.pptx")
person David Gohel    schedule 31.08.2017
comment
Спасибо за быстрый ответ и помощь! Я посмотрю офицерский пакет. - person Iwannabe Theguy; 31.08.2017
comment
Один последующий вопрос, используя этот метод, есть ли способ установить местоположение текста? Когда я пробую команды offx и offy, я получаю сообщение об ошибке, что мне нужна ширина и высота, когда я устанавливаю текст в нужное место. - person Iwannabe Theguy; 31.08.2017
comment
Я не уверен, что понимаю. При первом вызове добавляется новый абзац, и именно здесь определяется позиция (да, вам также нужны ширина и высота), затем он добавляется только к новой существующей текстовой форме. Весь текст принадлежит к одной и той же форме. - person David Gohel; 31.08.2017
comment
Это имеет смысл. Спасибо за объяснение. - person Iwannabe Theguy; 31.08.2017