我正在尝试使用PDF-LIB来在我的 React 应用程序中实现 PDF 功能。目的是呈现表单的 PDF 版本,并允许用户编辑字段,然后保存进度。
出于这个原因,我决定使用 PDF-LIB 而不是像 React-pdf 这样的替代品,因为这似乎是最强大的。
我对处理 PDF 的过程的理解如下:
Fetch PDF & convert to byte array--> Load PDF data and make changes-->Save updated PDF as byte array
我正在尝试调整此处找到的示例
这是我的代码:
const LoadPDF = () => {
const [pdfInfo, setPdfInfo] = useState([]);
useEffect(() => {
modifyPdf();
}, []);
const modifyPdf = async () => {
const existingPdfBytes = await fetch(
"https://pdf-lib.js.org/assets/with_update_sections.pdf"
).then((res) => res.arrayBuffer());
const pdfDoc = await PDFDocument.load(existingPdfBytes);
const …Run Code Online (Sandbox Code Playgroud) 我在后端创建了一个图表来存储图表相关数据。以下是 Knex 迁移文件中的架构:
exports.up = function(knex) {
return (
knex.schema
.createTable('users', tbl => {
tbl.increments();
tbl.string('username', 255).notNullable();
tbl.string('password', 255).notNullable();
tbl.string('name', 255).notNullable();
tbl.string('email', 255).unique().notNullable();
})
.createTable('graphs', tbl => {
tbl.increments();
tbl.string('graph_name', 255).notNullable();
tbl.jsonb('graph_info').notNullable();
tbl
.integer('user_id')
.unsigned()
.notNullable()
.references('id')
.inTable('users')
.onDelete('CASCADE')
.onUpdate('CASCADE');
})
)
};
Run Code Online (Sandbox Code Playgroud)
以下是我尝试存储在数据库的 jsonb 列中的数据类型的示例:
{
labels: ['Axis1', 'Axis2', 'Axis3'],
datasets: [
{
label: 'Dataset1',
borderDash: [0, 0],
backgroundColor: '#fff',
data: [25, 14, 22],
},
],
title: 'Graph1',
}
Run Code Online (Sandbox Code Playgroud)
现在这是我尝试通过 Postman 发送的请求:
{
"graph_name": "test10",
"graph_info": "{
labels: ['Axis1', …Run Code Online (Sandbox Code Playgroud) 我正在处理这个编码挑战,我发现我被卡住了。我认为可以对传入的参数调用 .string 方法,但现在我不确定。我在 Ruby 文档中发现的所有内容都表明并非如此。我真的很想在不看解决方案的情况下弄清楚这一点。有人可以帮助我朝正确的方向推动吗?
# Write a method that will take a string as input, and return a new
# string with the same letters in reverse order.
# Don't use String's reverse method; that would be too simple.
# Difficulty: easy.
def reverse(string)
string_array = []
string.split()
string_array.push(string)
string_array.sort! { |x,y| y <=> x}
end
# These are tests to check that your code is working. After writing
# your solution, they should all print true.
puts(
'reverse("abc") …Run Code Online (Sandbox Code Playgroud)