Stack Overflow ! .
Closed this issue · 3 comments
Shrav108 commented
I am generating a report after doing some calculations. After adding an image and 3 tables, I am getting stack overflow. What to do ?
[(exit code: 0xc00000fd, STATUS_STACK_OVERFLOW)](error: process didn't exit successfully: `target\debug\word.exe` (exit code: 0xc00000fd, STATUS_STACK_OVERFLOW))```
Shrav108 commented
Here is the code :
use docx_rs ::*;
use chrono;
use std::fs::*;
use std::io::Read;
fn main() -> Result<(), DocxError>
{
println!("{:?}", chrono::offset::Local::now());
let path = std::path::Path::new("./hello_.docx");
let file = std::fs::File::create(path).unwrap();
//let file_ = Box::new(std::fs::File::create(path).unwrap());
let mut img = File::open("SCHB.png").unwrap();
let mut buf = Vec::new();
let _ = img.read_to_end(&mut buf).unwrap();
let pic = Pic::new(&buf).size(100000 * 50 , 100000 * 25 );
let input_table = Table::new(vec![TableRow::new(vec![TableCell::new().width(700, WidthType::Nil).add_paragraph(Paragraph::new().add_run(Run::new().add_text("Sl. No.")).align(AlignmentType::Center).bold()),
TableCell::new().width(1800, WidthType::Nil).add_paragraph(Paragraph::new().add_run(Run::new().add_text("Parameter")).align(AlignmentType::Center).bold()),
TableCell::new().width(1000, WidthType::Nil).add_paragraph(Paragraph::new().add_run(Run::new().add_text("Value")).align(AlignmentType::Center).bold()),
TableCell::new().width(1000, WidthType::Nil).add_paragraph(Paragraph::new().add_run(Run::new().add_text("Units")).align(AlignmentType::Center).bold())]),
TableRow::new(vec![TableCell::new().width(700, WidthType::Nil).add_paragraph(Paragraph::new().add_run(Run::new().add_text("1.")).align(AlignmentType::Center)),
TableCell::new().width(1800, WidthType::Nil).add_paragraph(Paragraph::new().add_run(Run::new().add_text("Oil Pressure")).align(AlignmentType::Center)),
TableCell::new().width(1000, WidthType::Nil).add_paragraph(Paragraph::new().add_run(Run::new().add_text("")).align(AlignmentType::Center)),
TableCell::new().width(1000, WidthType::Nil).add_paragraph(Paragraph::new().add_run(Run::new().add_text("bar")).align(AlignmentType::Center))]),
TableRow::new(vec![TableCell::new().width(700, WidthType::Nil).add_paragraph(Paragraph::new().add_run(Run::new().add_text("2.")).align(AlignmentType::Center)),
TableCell::new().width(1800, WidthType::Nil).add_paragraph(Paragraph::new().add_run(Run::new().add_text("Kinematic Viscosity")).align(AlignmentType::Center)),
TableCell::new().width(1000, WidthType::Nil).add_paragraph(Paragraph::new().add_run(Run::new().add_text("")).align(AlignmentType::Center)),
TableCell::new().width(1000, WidthType::Nil).add_paragraph(Paragraph::new().add_run(Run::new().add_text("cst")).align(AlignmentType::Center))]),
TableRow::new(vec![TableCell::new().width(700, WidthType::Nil).add_paragraph(Paragraph::new().add_run(Run::new().add_text("3.")).align(AlignmentType::Center)),
TableCell::new().width(1800, WidthType::Nil).add_paragraph(Paragraph::new().add_run(Run::new().add_text("Oil Density")).align(AlignmentType::Center)),
TableCell::new().width(1000, WidthType::Nil).add_paragraph(Paragraph::new().add_run(Run::new().add_text("")).align(AlignmentType::Center)),
TableCell::new().width(1000, WidthType::Nil).add_paragraph(Paragraph::new().add_run(Run::new().add_text("kg/m3")).align(AlignmentType::Center))]),
TableRow::new(vec![TableCell::new().width(700, WidthType::Nil).add_paragraph(Paragraph::new().add_run(Run::new().add_text("4.")).align(AlignmentType::Center)),
TableCell::new().width(1800, WidthType::Nil).add_paragraph(Paragraph::new().add_run(Run::new().add_text("Bearing Gap")).align(AlignmentType::Center)),
TableCell::new().width(1000, WidthType::Nil).add_paragraph(Paragraph::new().add_run(Run::new().add_text("")).align(AlignmentType::Center)),
TableCell::new().width(1000, WidthType::Nil).add_paragraph(Paragraph::new().add_run(Run::new().add_text("µm")).align(AlignmentType::Center))]),
TableRow::new(vec![TableCell::new().width(600, WidthType::Nil).add_paragraph(Paragraph::new().add_run(Run::new().add_text("5.")).align(AlignmentType::Center)),
TableCell::new().width(1800, WidthType::Nil).add_paragraph(Paragraph::new().add_run(Run::new().add_text("Number of Pairs")).align(AlignmentType::Center)),
TableCell::new().width(1000, WidthType::Nil).add_paragraph(Paragraph::new().add_run(Run::new().add_text("")).align(AlignmentType::Center)),
TableCell::new().width(1000, WidthType::Nil).add_paragraph(Paragraph::new().add_run(Run::new().add_text("integer")).align(AlignmentType::Center))]),
]).align(TableAlignmentType::Center);
let load_table =Table::new(vec![TableRow::new(vec![TableCell::new().width(700, WidthType::Nil).add_paragraph(Paragraph::new().add_run(Run::new().add_text("Sl. No.")).align(AlignmentType::Center).bold()),
TableCell::new().width(1800, WidthType::Nil).add_paragraph(Paragraph::new().add_run(Run::new().add_text("Parameter")).align(AlignmentType::Center).bold()),
TableCell::new().width(1000, WidthType::Nil).add_paragraph(Paragraph::new().add_run(Run::new().add_text("Value")).align(AlignmentType::Center).bold()),
TableCell::new().width(1000, WidthType::Nil).add_paragraph(Paragraph::new().add_run(Run::new().add_text("Units")).align(AlignmentType::Center).bold())]),
TableRow::new(vec![TableCell::new().width(700, WidthType::Nil).add_paragraph(Paragraph::new().add_run(Run::new().add_text("1.")).align(AlignmentType::Center)),
TableCell::new().width(1800, WidthType::Nil).add_paragraph(Paragraph::new().add_run(Run::new().add_text("Width")).align(AlignmentType::Center)),
TableCell::new().width(1000, WidthType::Nil).add_paragraph(Paragraph::new().add_run(Run::new().add_text("")).align(AlignmentType::Center)),
TableCell::new().width(1000, WidthType::Nil).add_paragraph(Paragraph::new().add_run(Run::new().add_text("mm")).align(AlignmentType::Center))]),
TableRow::new(vec![TableCell::new().width(700, WidthType::Nil).add_paragraph(Paragraph::new().add_run(Run::new().add_text("2.")).align(AlignmentType::Center)),
TableCell::new().width(1800, WidthType::Nil).add_paragraph(Paragraph::new().add_run(Run::new().add_text("Length")).align(AlignmentType::Center)),
TableCell::new().width(1000, WidthType::Nil).add_paragraph(Paragraph::new().add_run(Run::new().add_text("")).align(AlignmentType::Center)),
TableCell::new().width(1000, WidthType::Nil).add_paragraph(Paragraph::new().add_run(Run::new().add_text("mm")).align(AlignmentType::Center))]),
TableRow::new(vec![TableCell::new().width(700, WidthType::Nil).add_paragraph(Paragraph::new().add_run(Run::new().add_text("3.")).align(AlignmentType::Center)),
TableCell::new().width(1800, WidthType::Nil).add_paragraph(Paragraph::new().add_run(Run::new().add_text("Land Width")).align(AlignmentType::Center)),
TableCell::new().width(1000, WidthType::Nil).add_paragraph(Paragraph::new().add_run(Run::new().add_text("")).align(AlignmentType::Center)),
TableCell::new().width(1000, WidthType::Nil).add_paragraph(Paragraph::new().add_run(Run::new().add_text("mm")).align(AlignmentType::Center))]),
TableRow::new(vec![TableCell::new().width(700, WidthType::Nil).add_paragraph(Paragraph::new().add_run(Run::new().add_text("4.")).align(AlignmentType::Center)),
TableCell::new().width(1800, WidthType::Nil).add_paragraph(Paragraph::new().add_run(Run::new().add_text("Radius")).align(AlignmentType::Center)),
TableCell::new().width(1000, WidthType::Nil).add_paragraph(Paragraph::new().add_run(Run::new().add_text("")).align(AlignmentType::Center)),
TableCell::new().width(1000, WidthType::Nil).add_paragraph(Paragraph::new().add_run(Run::new().add_text("mm")).align(AlignmentType::Center))]),
TableRow::new(vec![TableCell::new().width(600, WidthType::Nil).add_paragraph(Paragraph::new().add_run(Run::new().add_text("5.")).align(AlignmentType::Center)),
TableCell::new().width(1800, WidthType::Nil).add_paragraph(Paragraph::new().add_run(Run::new().add_text("Gamma")).align(AlignmentType::Center)),
TableCell::new().width(1000, WidthType::Nil).add_paragraph(Paragraph::new().add_run(Run::new().add_text("")).align(AlignmentType::Center)),
TableCell::new().width(1000, WidthType::Nil).add_paragraph(Paragraph::new().add_run(Run::new().add_text("ratio")).align(AlignmentType::Center))]),
TableRow::new(vec![TableCell::new().width(600, WidthType::Nil).add_paragraph(Paragraph::new().add_run(Run::new().add_text("6.")).align(AlignmentType::Center)),
TableCell::new().width(1800, WidthType::Nil).add_paragraph(Paragraph::new().add_run(Run::new().add_text("Leak Ratio")).align(AlignmentType::Center)),
TableCell::new().width(1000, WidthType::Nil).add_paragraph(Paragraph::new().add_run(Run::new().add_text("")).align(AlignmentType::Center)),
TableCell::new().width(1000, WidthType::Nil).add_paragraph(Paragraph::new().add_run(Run::new().add_text("ratio")).align(AlignmentType::Center))]),
]).align(TableAlignmentType::Center);
let preload_table = Table::new(vec![TableRow::new(vec![TableCell::new().width(700, WidthType::Nil).add_paragraph(Paragraph::new().add_run(Run::new().add_text("Sl. No.")).align(AlignmentType::Center).bold()),
TableCell::new().width(1800, WidthType::Nil).add_paragraph(Paragraph::new().add_run(Run::new().add_text("Parameter")).align(AlignmentType::Center).bold()),
TableCell::new().width(1000, WidthType::Nil).add_paragraph(Paragraph::new().add_run(Run::new().add_text("Value")).align(AlignmentType::Center).bold()),
TableCell::new().width(1000, WidthType::Nil).add_paragraph(Paragraph::new().add_run(Run::new().add_text("Units")).align(AlignmentType::Center).bold())]),
TableRow::new(vec![TableCell::new().width(700, WidthType::Nil).add_paragraph(Paragraph::new().add_run(Run::new().add_text("1.")).align(AlignmentType::Center)),
TableCell::new().width(1800, WidthType::Nil).add_paragraph(Paragraph::new().add_run(Run::new().add_text("Width")).align(AlignmentType::Center)),
TableCell::new().width(1000, WidthType::Nil).add_paragraph(Paragraph::new().add_run(Run::new().add_text("")).align(AlignmentType::Center)),
TableCell::new().width(1000, WidthType::Nil).add_paragraph(Paragraph::new().add_run(Run::new().add_text("mm")).align(AlignmentType::Center))]),
TableRow::new(vec![TableCell::new().width(700, WidthType::Nil).add_paragraph(Paragraph::new().add_run(Run::new().add_text("2.")).align(AlignmentType::Center)),
TableCell::new().width(1800, WidthType::Nil).add_paragraph(Paragraph::new().add_run(Run::new().add_text("Length")).align(AlignmentType::Center)),
TableCell::new().width(1000, WidthType::Nil).add_paragraph(Paragraph::new().add_run(Run::new().add_text("")).align(AlignmentType::Center)),
TableCell::new().width(1000, WidthType::Nil).add_paragraph(Paragraph::new().add_run(Run::new().add_text("mm")).align(AlignmentType::Center))]),
TableRow::new(vec![TableCell::new().width(700, WidthType::Nil).add_paragraph(Paragraph::new().add_run(Run::new().add_text("3.")).align(AlignmentType::Center)),
TableCell::new().width(1800, WidthType::Nil).add_paragraph(Paragraph::new().add_run(Run::new().add_text("Land Width")).align(AlignmentType::Center)),
TableCell::new().width(1000, WidthType::Nil).add_paragraph(Paragraph::new().add_run(Run::new().add_text("")).align(AlignmentType::Center)),
TableCell::new().width(1000, WidthType::Nil).add_paragraph(Paragraph::new().add_run(Run::new().add_text("mm")).align(AlignmentType::Center))]),
TableRow::new(vec![TableCell::new().width(700, WidthType::Nil).add_paragraph(Paragraph::new().add_run(Run::new().add_text("4.")).align(AlignmentType::Center)),
TableCell::new().width(1800, WidthType::Nil).add_paragraph(Paragraph::new().add_run(Run::new().add_text("Radius")).align(AlignmentType::Center)),
TableCell::new().width(1000, WidthType::Nil).add_paragraph(Paragraph::new().add_run(Run::new().add_text("")).align(AlignmentType::Center)),
TableCell::new().width(1000, WidthType::Nil).add_paragraph(Paragraph::new().add_run(Run::new().add_text("mm")).align(AlignmentType::Center))]),
TableRow::new(vec![TableCell::new().width(600, WidthType::Nil).add_paragraph(Paragraph::new().add_run(Run::new().add_text("5.")).align(AlignmentType::Center)),
TableCell::new().width(1800, WidthType::Nil).add_paragraph(Paragraph::new().add_run(Run::new().add_text("Gamma")).align(AlignmentType::Center)),
TableCell::new().width(1000, WidthType::Nil).add_paragraph(Paragraph::new().add_run(Run::new().add_text("")).align(AlignmentType::Center)),
TableCell::new().width(1000, WidthType::Nil).add_paragraph(Paragraph::new().add_run(Run::new().add_text("ratio")).align(AlignmentType::Center))]),
TableRow::new(vec![TableCell::new().width(600, WidthType::Nil).add_paragraph(Paragraph::new().add_run(Run::new().add_text("6.")).align(AlignmentType::Center)),
TableCell::new().width(1800, WidthType::Nil).add_paragraph(Paragraph::new().add_run(Run::new().add_text("Leak Ratio")).align(AlignmentType::Center)),
TableCell::new().width(1000, WidthType::Nil).add_paragraph(Paragraph::new().add_run(Run::new().add_text("")).align(AlignmentType::Center)),
TableCell::new().width(1000, WidthType::Nil).add_paragraph(Paragraph::new().add_run(Run::new().add_text("ratio")).align(AlignmentType::Center))]),
]).align(TableAlignmentType::Center);
let diam_table = Table::new(vec![TableRow::new(vec![TableCell::new().width(700, WidthType::Nil).add_paragraph(Paragraph::new().add_run(Run::new().add_text("Sl. No.")).align(AlignmentType::Center).bold()),
TableCell::new().width(1800, WidthType::Nil).add_paragraph(Paragraph::new().add_run(Run::new().add_text("Parameter")).align(AlignmentType::Center).bold()),
TableCell::new().width(1000, WidthType::Nil).add_paragraph(Paragraph::new().add_run(Run::new().add_text("Value")).align(AlignmentType::Center).bold()),
TableCell::new().width(1000, WidthType::Nil).add_paragraph(Paragraph::new().add_run(Run::new().add_text("Units")).align(AlignmentType::Center).bold())]),
TableRow::new(vec![TableCell::new().width(700, WidthType::Nil).add_paragraph(Paragraph::new().add_run(Run::new().add_text("1.")).align(AlignmentType::Center)),
TableCell::new().width(1800, WidthType::Nil).add_paragraph(Paragraph::new().add_run(Run::new().add_text("Supply Hole Diameter 'DS'")).align(AlignmentType::Center)),
TableCell::new().width(1000, WidthType::Nil).add_paragraph(Paragraph::new().add_run(Run::new().add_text("")).align(AlignmentType::Center)),
TableCell::new().width(1000, WidthType::Nil).add_paragraph(Paragraph::new().add_run(Run::new().add_text("mm")).align(AlignmentType::Center))]),
TableRow::new(vec![TableCell::new().width(700, WidthType::Nil).add_paragraph(Paragraph::new().add_run(Run::new().add_text("2.")).align(AlignmentType::Center)),
TableCell::new().width(1800, WidthType::Nil).add_paragraph(Paragraph::new().add_run(Run::new().add_text("Collector Hole Diameter 'D1'")).align(AlignmentType::Center)),
TableCell::new().width(1000, WidthType::Nil).add_paragraph(Paragraph::new().add_run(Run::new().add_text("")).align(AlignmentType::Center)),
TableCell::new().width(1000, WidthType::Nil).add_paragraph(Paragraph::new().add_run(Run::new().add_text("mm")).align(AlignmentType::Center))]),
]).align(TableAlignmentType::Center);
Docx::new()
.add_paragraph(Paragraph::new().add_run(Run::new().add_text("Preloaded Self-Compensated Hydrostatic Bearing Sizing Report").bold().size(24))
.align(AlignmentType::Center))
.add_paragraph(Paragraph::new().line_spacing(LineSpacing::new().after_lines(10)))
.add_paragraph(Paragraph::new().add_run(Run::new().add_text("Project : ").size(20)).align(AlignmentType::Left))
.add_paragraph(Paragraph::new().add_run(Run::new().add_text("Date : ").size(20)).align(AlignmentType::Left))
.add_paragraph(Paragraph::new().line_spacing(LineSpacing::new().after_lines(10)))
.add_paragraph(Paragraph::new().add_run(Run::new().add_image(pic).text_border(TextBorder::new().border_type(BorderType::Dashed))).align(AlignmentType::Center))
.add_paragraph(Paragraph::new().add_run(Run::new().add_text(" Bearing-Restrictor ").size(20).italic()).align(AlignmentType::Center))
.add_paragraph(Paragraph::new().line_spacing(LineSpacing::new().after_lines(10)))
.add_paragraph(Paragraph::new().add_run(Run::new().add_text("General Inputs").size(20)).align(AlignmentType::Left))
.add_table(input_table.align(TableAlignmentType::Center))
.add_paragraph(Paragraph::new().line_spacing(LineSpacing::new().after_lines(10)))
.add_paragraph(Paragraph::new().add_run(Run::new().add_text("Preload Pad Inputs").size(20)).align(AlignmentType::Left))
.add_table(preload_table.align(TableAlignmentType::Center))
.add_paragraph(Paragraph::new().line_spacing(LineSpacing::new().after_lines(10)))
.add_paragraph(Paragraph::new().add_run(Run::new().add_text("Load Pad Inputs").size(20)).align(AlignmentType::Left))
.add_table(load_table.align(TableAlignmentType::Center))
.add_paragraph(Paragraph::new().line_spacing(LineSpacing::new().after_lines(10)))
.add_paragraph(Paragraph::new().add_run(Run::new().add_text("Restrictor Inputs").size(20)).align(AlignmentType::Left))
.add_table(diam_table.align(TableAlignmentType::Center))
.build()
.pack(file)?;
Ok(())
}
Shrav108 commented
Could any one tell what is the reason for the overflow. I tried to Box all variables, but it still overflows.