summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Cargo.lock5
-rw-r--r--crates/typst-pdf/Cargo.toml1
-rw-r--r--crates/typst-pdf/src/tags/table.rs10
3 files changed, 9 insertions, 7 deletions
diff --git a/Cargo.lock b/Cargo.lock
index 7a0daeb6..96ae7eec 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -1367,7 +1367,7 @@ dependencies = [
[[package]]
name = "krilla"
version = "0.4.0"
-source = "git+https://github.com/saecki/krilla?branch=tag-attributes#a13326781d3959896a468b79dd80741bd3ab2398"
+source = "git+https://github.com/saecki/krilla?branch=tag-attributes#2556c404d19746f9385b4a4e26e910d9e625c1db"
dependencies = [
"base64",
"bumpalo",
@@ -1396,7 +1396,7 @@ dependencies = [
[[package]]
name = "krilla-svg"
version = "0.1.0"
-source = "git+https://github.com/saecki/krilla?branch=tag-attributes#a13326781d3959896a468b79dd80741bd3ab2398"
+source = "git+https://github.com/saecki/krilla?branch=tag-attributes#2556c404d19746f9385b4a4e26e910d9e625c1db"
dependencies = [
"flate2",
"fontdb",
@@ -3139,6 +3139,7 @@ dependencies = [
"krilla",
"krilla-svg",
"serde",
+ "smallvec",
"typst-assets",
"typst-library",
"typst-macros",
diff --git a/crates/typst-pdf/Cargo.toml b/crates/typst-pdf/Cargo.toml
index 5745d053..b96a2802 100644
--- a/crates/typst-pdf/Cargo.toml
+++ b/crates/typst-pdf/Cargo.toml
@@ -27,6 +27,7 @@ infer = { workspace = true }
krilla = { workspace = true }
krilla-svg = { workspace = true }
serde = { workspace = true }
+smallvec = { workspace = true }
[lints]
workspace = true
diff --git a/crates/typst-pdf/src/tags/table.rs b/crates/typst-pdf/src/tags/table.rs
index eb13a139..c27f95a1 100644
--- a/crates/typst-pdf/src/tags/table.rs
+++ b/crates/typst-pdf/src/tags/table.rs
@@ -1,8 +1,10 @@
+use std::io::Write as _;
use std::num::{NonZeroU32, NonZeroUsize};
use krilla::tagging::{
TableCellSpan, TableDataCell, TableHeaderCell, TagBuilder, TagId, TagIdRefs, TagKind,
};
+use smallvec::SmallVec;
use typst_library::foundations::{Packed, Smart, StyleChain};
use typst_library::model::{TableCell, TableCellKind, TableElem, TableHeaderScope};
@@ -313,11 +315,9 @@ fn should_group_rows(a: TableCellKind, b: TableCellKind) -> bool {
}
fn table_cell_id(table_id: TableId, x: u32, y: u32) -> TagId {
- let mut bytes = [0; 12];
- bytes[0..4].copy_from_slice(&table_id.0.to_ne_bytes());
- bytes[4..8].copy_from_slice(&x.to_ne_bytes());
- bytes[8..12].copy_from_slice(&y.to_ne_bytes());
- TagId::from_slice(&bytes)
+ let mut buf = SmallVec::new();
+ _ = write!(&mut buf, "{}x{x}y{y}", table_id.0);
+ TagId::from_smallvec(buf)
}
fn table_header_scope(scope: TableHeaderScope) -> krilla::tagging::TableHeaderScope {