Skip to content

Commit be664f7

Browse files
authored
Merge pull request #264 from Merck/font-type-df
2 parents 8acbff0 + a407c8a commit be664f7

9 files changed

Lines changed: 54 additions & 33 deletions

R/content_create.R

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -48,13 +48,14 @@ as_rtf_init <- function() {
4848
#' @noRd
4949
as_rtf_font <- function() {
5050
font_type <- font_type()
51-
font_rtf <- factor(c(1:10), levels = font_type$type, labels = font_type$rtf_code)
52-
font_style <- factor(c(1:10), levels = font_type$type, labels = font_type$style)
53-
font_name <- factor(c(1:10), levels = font_type$type, labels = font_type$name)
51+
font_rtf <- factor(seq_along(font_type$type), levels = font_type$type, labels = font_type$rtf_code)
52+
font_style <- factor(seq_along(font_type$type), levels = font_type$type, labels = font_type$style)
53+
font_name <- factor(seq_along(font_type$type), levels = font_type$type, labels = font_type$name)
54+
font_charset <- factor(seq_along(font_type$type), levels = font_type$type, labels = font_type$charset)
5455

5556
font_table <- paste0(
5657
"{\\fonttbl",
57-
paste(paste0("{", font_rtf, font_style, "\\fcharset161\\fprq2 ", font_name, ";}\n"), collapse = ""),
58+
paste(paste0("{", font_rtf, font_style, font_charset, "\\fprq2 ", font_name, ";}\n"), collapse = ""),
5859
"}\n"
5960
)
6061

R/dictionary.R

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,12 @@ font_type <- function() {
5252
"Times", "Times", "ArialMT", "ArialMT", "Helvetica",
5353
"Calibri", "Georgia", "Cambria", "Courier", "Times"
5454
),
55+
charset = c(
56+
"\\fcharset1", "\\fcharset161", "\\fcharset161", "\\fcharset0",
57+
"\\fcharset1", "\\fcharset1", "\\fcharset1", "\\fcharset1",
58+
"\\fcharset0", "\\fcharset2"
59+
),
60+
width_group = c(1, 1, 4, 4, 4, 1, 9, 4, 9, 9),
5561
stringsAsFactors = FALSE
5662
)
5763
}

R/rtf_strwidth.R

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,11 +66,14 @@ rtf_strwidth <- function(tbl) {
6666
text_format <- 1
6767
}
6868

69+
# Font type
70+
font_type_df <- font_type()
71+
6972
# Font family
7073
font_num <- as.numeric(attr(tbl, "text_font"))
7174

7275
# Group font with same style
73-
font_num <- factor(font_num, levels = 1:10, labels = c(1, 1, 4, 4, 4, 1, 9, 4, 9, 9))
76+
font_num <- factor(font_num, levels = seq_along(font_type_df$type), labels = font_type_df$width_group)
7477
font_num <- as.numeric(as.character(font_num))
7578

7679
text_family <- font_type()[font_num, "family"]

tests/testthat/_snaps/independent-testing-content_create.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# RTF font type encode
22

3-
[1] "{\\fonttbl{\\f0\\froman\\fcharset161\\fprq2 Times New Roman;}\n{\\f1\\froman\\fcharset161\\fprq2 Times New Roman Greek;}\n{\\f2\\fswiss\\fcharset161\\fprq2 Arial Greek;}\n{\\f3\\fswiss\\fcharset161\\fprq2 Arial;}\n{\\f4\\fswiss\\fcharset161\\fprq2 Helvetica;}\n{\\f5\\fswiss\\fcharset161\\fprq2 Calibri;}\n{\\f6\\froman\\fcharset161\\fprq2 Georgia;}\n{\\f7\\ffroman\\fcharset161\\fprq2 Cambria;}\n{\\f8\\fmodern\\fcharset161\\fprq2 Courier New;}\n{\\f9\\ftech\\fcharset161\\fprq2 Symbol;}\n}\n"
3+
[1] "{\\fonttbl{\\f0\\froman\\fcharset1\\fprq2 Times New Roman;}\n{\\f1\\froman\\fcharset161\\fprq2 Times New Roman Greek;}\n{\\f2\\fswiss\\fcharset161\\fprq2 Arial Greek;}\n{\\f3\\fswiss\\fcharset0\\fprq2 Arial;}\n{\\f4\\fswiss\\fcharset1\\fprq2 Helvetica;}\n{\\f5\\fswiss\\fcharset1\\fprq2 Calibri;}\n{\\f6\\froman\\fcharset1\\fprq2 Georgia;}\n{\\f7\\ffroman\\fcharset1\\fprq2 Cambria;}\n{\\f8\\fmodern\\fcharset0\\fprq2 Courier New;}\n{\\f9\\ftech\\fcharset2\\fprq2 Symbol;}\n}\n"
44

55
# RTF font color encode with color not NULL
66

tests/testthat/_snaps/independent-testing-dictionary.md

Lines changed: 22 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,27 @@
11
# text font
22

3-
type name style rtf_code family
4-
1 1 Times New Roman \\froman \\f0 Times
5-
2 2 Times New Roman Greek \\froman \\f1 Times
6-
3 3 Arial Greek \\fswiss \\f2 ArialMT
7-
4 4 Arial \\fswiss \\f3 ArialMT
8-
5 5 Helvetica \\fswiss \\f4 Helvetica
9-
6 6 Calibri \\fswiss \\f5 Calibri
10-
7 7 Georgia \\froman \\f6 Georgia
11-
8 8 Cambria \\ffroman \\f7 Cambria
12-
9 9 Courier New \\fmodern \\f8 Courier
13-
10 10 Symbol \\ftech \\f9 Times
3+
type name style rtf_code family charset
4+
1 1 Times New Roman \\froman \\f0 Times \\fcharset1
5+
2 2 Times New Roman Greek \\froman \\f1 Times \\fcharset161
6+
3 3 Arial Greek \\fswiss \\f2 ArialMT \\fcharset161
7+
4 4 Arial \\fswiss \\f3 ArialMT \\fcharset0
8+
5 5 Helvetica \\fswiss \\f4 Helvetica \\fcharset1
9+
6 6 Calibri \\fswiss \\f5 Calibri \\fcharset1
10+
7 7 Georgia \\froman \\f6 Georgia \\fcharset1
11+
8 8 Cambria \\ffroman \\f7 Cambria \\fcharset1
12+
9 9 Courier New \\fmodern \\f8 Courier \\fcharset0
13+
10 10 Symbol \\ftech \\f9 Times \\fcharset2
14+
width_group
15+
1 1
16+
2 1
17+
3 4
18+
4 4
19+
5 4
20+
6 1
21+
7 9
22+
8 4
23+
9 9
24+
10 9
1425

1526
# border type
1627

tests/testthat/_snaps/independent-testing-rtf_encode.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
# Test if content is converted to RTF correctly when tbl class is list
22

33
$start
4-
[1] "{\\rtf1\\ansi\n\\deff0\\deflang1033\n{\\fonttbl{\\f0\\froman\\fcharset161\\fprq2 Times New Roman;}\n{\\f1\\froman\\fcharset161\\fprq2 Times New Roman Greek;}\n{\\f2\\fswiss\\fcharset161\\fprq2 Arial Greek;}\n{\\f3\\fswiss\\fcharset161\\fprq2 Arial;}\n{\\f4\\fswiss\\fcharset161\\fprq2 Helvetica;}\n{\\f5\\fswiss\\fcharset161\\fprq2 Calibri;}\n{\\f6\\froman\\fcharset161\\fprq2 Georgia;}\n{\\f7\\ffroman\\fcharset161\\fprq2 Cambria;}\n{\\f8\\fmodern\\fcharset161\\fprq2 Courier New;}\n{\\f9\\ftech\\fcharset161\\fprq2 Symbol;}\n}\n\n"
4+
[1] "{\\rtf1\\ansi\n\\deff0\\deflang1033\n{\\fonttbl{\\f0\\froman\\fcharset1\\fprq2 Times New Roman;}\n{\\f1\\froman\\fcharset161\\fprq2 Times New Roman Greek;}\n{\\f2\\fswiss\\fcharset161\\fprq2 Arial Greek;}\n{\\f3\\fswiss\\fcharset0\\fprq2 Arial;}\n{\\f4\\fswiss\\fcharset1\\fprq2 Helvetica;}\n{\\f5\\fswiss\\fcharset1\\fprq2 Calibri;}\n{\\f6\\froman\\fcharset1\\fprq2 Georgia;}\n{\\f7\\ffroman\\fcharset1\\fprq2 Cambria;}\n{\\f8\\fmodern\\fcharset0\\fprq2 Courier New;}\n{\\f9\\ftech\\fcharset2\\fprq2 Symbol;}\n}\n\n"
55

66
$body
77
[1] "\\paperw12240\\paperh15840\n\n\\margl1800\\margr1440\\margt2520\\margb1800\\headery2520\\footery1449\n\n\n\n\n\\trowd\\trgaph108\\trleft0\\trqc\n\\clbrdrl\\brdrs\\brdrw15\\clbrdrt\\brdrdb\\brdrw15\\clbrdrr\\brdrs\\brdrw15\\clbrdrb\\brdrw15\\clvertalb\\cellx9000\n\\pard\\hyphpar0\\sb15\\sa15\\fi0\\li0\\ri0\\qc\\fs18{\\f0 X1}\\cell\n\\intbl\\row\\pard\n\\trowd\\trgaph108\\trleft0\\trqc\n\\clbrdrl\\brdrs\\brdrw15\\clbrdrt\\brdrs\\brdrw15\\clbrdrr\\brdrs\\brdrw15\\clbrdrb\\brdrs\\brdrw15\\clvertalt\\cellx9000\n\\pard\\hyphpar0\\sb15\\sa15\\fi0\\li0\\ri0\\qc\\fs18{\\f0 1}\\cell\n\\intbl\\row\\pard\n\n\n\n\n\\paperw12240\\paperh15840\n\n\\margl1800\\margr1440\\margt2520\\margb1800\\headery2520\\footery1449\n\n\n\n\n\\trowd\\trgaph108\\trleft0\\trqc\n\\clbrdrl\\brdrs\\brdrw15\\clbrdrt\\brdrs\\brdrw15\\clbrdrr\\brdrs\\brdrw15\\clbrdrb\\brdrw15\\clvertalb\\cellx9000\n\\pard\\hyphpar0\\sb15\\sa15\\fi0\\li0\\ri0\\qc\\fs18{\\f0 X1}\\cell\n\\intbl\\row\\pard\n\\trowd\\trgaph108\\trleft0\\trqc\n\\clbrdrl\\brdrs\\brdrw15\\clbrdrt\\brdrs\\brdrw15\\clbrdrr\\brdrs\\brdrw15\\clbrdrb\\brdrdb\\brdrw15\\clvertalt\\cellx9000\n\\pard\\hyphpar0\\sb15\\sa15\\fi0\\li0\\ri0\\qc\\fs18{\\f0 1}\\cell\n\\intbl\\row\\pard\n\n\n\n"
@@ -13,7 +13,7 @@
1313
# Test if content is converted to RTF correctly when tbl class is data.frame
1414

1515
$start
16-
[1] "{\\rtf1\\ansi\n\\deff0\\deflang1033\n{\\fonttbl{\\f0\\froman\\fcharset161\\fprq2 Times New Roman;}\n{\\f1\\froman\\fcharset161\\fprq2 Times New Roman Greek;}\n{\\f2\\fswiss\\fcharset161\\fprq2 Arial Greek;}\n{\\f3\\fswiss\\fcharset161\\fprq2 Arial;}\n{\\f4\\fswiss\\fcharset161\\fprq2 Helvetica;}\n{\\f5\\fswiss\\fcharset161\\fprq2 Calibri;}\n{\\f6\\froman\\fcharset161\\fprq2 Georgia;}\n{\\f7\\ffroman\\fcharset161\\fprq2 Cambria;}\n{\\f8\\fmodern\\fcharset161\\fprq2 Courier New;}\n{\\f9\\ftech\\fcharset161\\fprq2 Symbol;}\n}\n\n"
16+
[1] "{\\rtf1\\ansi\n\\deff0\\deflang1033\n{\\fonttbl{\\f0\\froman\\fcharset1\\fprq2 Times New Roman;}\n{\\f1\\froman\\fcharset161\\fprq2 Times New Roman Greek;}\n{\\f2\\fswiss\\fcharset161\\fprq2 Arial Greek;}\n{\\f3\\fswiss\\fcharset0\\fprq2 Arial;}\n{\\f4\\fswiss\\fcharset1\\fprq2 Helvetica;}\n{\\f5\\fswiss\\fcharset1\\fprq2 Calibri;}\n{\\f6\\froman\\fcharset1\\fprq2 Georgia;}\n{\\f7\\ffroman\\fcharset1\\fprq2 Cambria;}\n{\\f8\\fmodern\\fcharset0\\fprq2 Courier New;}\n{\\f9\\ftech\\fcharset2\\fprq2 Symbol;}\n}\n\n"
1717

1818
$body
1919
[1] "\\paperw12240\\paperh15840\n\n\\margl1800\\margr1440\\margt2520\\margb1800\\headery2520\\footery1449\n\n\n\n\n\\trowd\\trgaph108\\trleft0\\trqc\n\\clbrdrl\\brdrs\\brdrw15\\clbrdrt\\brdrdb\\brdrw15\\clbrdrb\\brdrw15\\clvertalb\\cellx1800\n\\clbrdrl\\brdrs\\brdrw15\\clbrdrt\\brdrdb\\brdrw15\\clbrdrb\\brdrw15\\clvertalb\\cellx3600\n\\clbrdrl\\brdrs\\brdrw15\\clbrdrt\\brdrdb\\brdrw15\\clbrdrb\\brdrw15\\clvertalb\\cellx5400\n\\clbrdrl\\brdrs\\brdrw15\\clbrdrt\\brdrdb\\brdrw15\\clbrdrb\\brdrw15\\clvertalb\\cellx7200\n\\clbrdrl\\brdrs\\brdrw15\\clbrdrt\\brdrdb\\brdrw15\\clbrdrr\\brdrs\\brdrw15\\clbrdrb\\brdrw15\\clvertalb\\cellx9000\n\\pard\\hyphpar0\\sb15\\sa15\\fi0\\li0\\ri0\\qc\\fs18{\\f0 Sepal.Length}\\cell\n\\pard\\hyphpar0\\sb15\\sa15\\fi0\\li0\\ri0\\qc\\fs18{\\f0 Sepal.Width}\\cell\n\\pard\\hyphpar0\\sb15\\sa15\\fi0\\li0\\ri0\\qc\\fs18{\\f0 Petal.Length}\\cell\n\\pard\\hyphpar0\\sb15\\sa15\\fi0\\li0\\ri0\\qc\\fs18{\\f0 Petal.Width}\\cell\n\\pard\\hyphpar0\\sb15\\sa15\\fi0\\li0\\ri0\\qc\\fs18{\\f0 Species}\\cell\n\\intbl\\row\\pard\n\\trowd\\trgaph108\\trleft0\\trqc\n\\clbrdrl\\brdrs\\brdrw15\\clbrdrt\\brdrs\\brdrw15\\clbrdrb\\brdrw15\\clvertalt\\cellx1800\n\\clbrdrl\\brdrs\\brdrw15\\clbrdrt\\brdrs\\brdrw15\\clbrdrb\\brdrw15\\clvertalt\\cellx3600\n\\clbrdrl\\brdrs\\brdrw15\\clbrdrt\\brdrs\\brdrw15\\clbrdrb\\brdrw15\\clvertalt\\cellx5400\n\\clbrdrl\\brdrs\\brdrw15\\clbrdrt\\brdrs\\brdrw15\\clbrdrb\\brdrw15\\clvertalt\\cellx7200\n\\clbrdrl\\brdrs\\brdrw15\\clbrdrt\\brdrs\\brdrw15\\clbrdrr\\brdrs\\brdrw15\\clbrdrb\\brdrw15\\clvertalt\\cellx9000\n\\pard\\hyphpar0\\sb15\\sa15\\fi0\\li0\\ri0\\qc\\fs18{\\f0 5.1}\\cell\n\\pard\\hyphpar0\\sb15\\sa15\\fi0\\li0\\ri0\\qc\\fs18{\\f0 3.5}\\cell\n\\pard\\hyphpar0\\sb15\\sa15\\fi0\\li0\\ri0\\qc\\fs18{\\f0 1.4}\\cell\n\\pard\\hyphpar0\\sb15\\sa15\\fi0\\li0\\ri0\\qc\\fs18{\\f0 0.2}\\cell\n\\pard\\hyphpar0\\sb15\\sa15\\fi0\\li0\\ri0\\qc\\fs18{\\f0 setosa}\\cell\n\\intbl\\row\\pard\n\\trowd\\trgaph108\\trleft0\\trqc\n\\clbrdrl\\brdrs\\brdrw15\\clbrdrt\\brdrw15\\clbrdrb\\brdrdb\\brdrw15\\clvertalt\\cellx1800\n\\clbrdrl\\brdrs\\brdrw15\\clbrdrt\\brdrw15\\clbrdrb\\brdrdb\\brdrw15\\clvertalt\\cellx3600\n\\clbrdrl\\brdrs\\brdrw15\\clbrdrt\\brdrw15\\clbrdrb\\brdrdb\\brdrw15\\clvertalt\\cellx5400\n\\clbrdrl\\brdrs\\brdrw15\\clbrdrt\\brdrw15\\clbrdrb\\brdrdb\\brdrw15\\clvertalt\\cellx7200\n\\clbrdrl\\brdrs\\brdrw15\\clbrdrt\\brdrw15\\clbrdrr\\brdrs\\brdrw15\\clbrdrb\\brdrdb\\brdrw15\\clvertalt\\cellx9000\n\\pard\\hyphpar0\\sb15\\sa15\\fi0\\li0\\ri0\\qc\\fs18{\\f0 4.9}\\cell\n\\pard\\hyphpar0\\sb15\\sa15\\fi0\\li0\\ri0\\qc\\fs18{\\f0 3}\\cell\n\\pard\\hyphpar0\\sb15\\sa15\\fi0\\li0\\ri0\\qc\\fs18{\\f0 1.4}\\cell\n\\pard\\hyphpar0\\sb15\\sa15\\fi0\\li0\\ri0\\qc\\fs18{\\f0 0.2}\\cell\n\\pard\\hyphpar0\\sb15\\sa15\\fi0\\li0\\ri0\\qc\\fs18{\\f0 setosa}\\cell\n\\intbl\\row\\pard\n\n\n"

tests/testthat/_snaps/independent-testing-rtf_encode_list.md

Lines changed: 3 additions & 3 deletions
Large diffs are not rendered by default.

0 commit comments

Comments
 (0)