Хорошо, так что я Go Go Lang с Echo Framework, чтобы попытаться построить PDF, который будет загружать данные из источника базы данных - этот бит будет позже.
Так вот, как я отрисовываю мой pdf html
layout,
func (c *Controller) DataTest(ec echo.Context) error {
return ec.Render(http.StatusOK, "pdf.html", map[string]interface{}{
"name": "TEST",
"msg": "Hello, XXXX!",
})
}
Вышеприведенная функция работает нормально и отображает HTML (я создал временный путь к функции).Теперь я хочу использовать эту функцию в качестве моего HTML-шаблона для создания моих PDF-файлов.
Так что я использую wkhtmltopdf
и lib "github.com/SebastiaanKlippert/go-wkhtmltopdf"
Вот как я должен рендерить HTML вpdf,
html, err := ioutil.ReadFile("./assets/pdf.html")
if err != nil {
return err
}
Но мне нужно иметь возможность обновить шаблон, поэтому я пытаюсь отрисовать страницу и перенести ее в pdf.
Однако EchoFramework возвращает тип ошибки, а не байты или строки типа, и я не уверен, как его обновить, чтобы отображаемый контент возвращался в байтах?
Спасибо,
UPDATE
page := wkhtmltopdf.NewPageReader(bytes.NewReader(c.DataTest(data)))
Именно так я сейчас и поступаю, данные - это просто HTML-строка, которая затем превращается в кусочек байтов для NewReader
.
Это прекрасно работает, но я хотел превратить функцию DataTest
в полностью отрисованную html-страницу Echo.Проблема в том, что когда вы возвращаете визуализированную страницу, она возвращается как тип ошибки.
Поэтому я пытался выяснить причину его обновления, чтобы я мог вернуть данные в виде строки html, которая затем будет вставлена в виде фрагмента байтов.