小编Jar*_*tin的帖子

如何从CollectionFS获取文件(图像)的缓冲区

我正在尝试将图像插入到pdf中,我正在使用PDFkit创建服务器端.我正在使用cfs:dropbox来存储我的文件.在我使用cvs:filesystem之前,很容易将图像添加到我的pdf中,因为它们就在那里.现在它们被远程存储,我不知道如何添加它们,因为PDFkit不支持仅使用url添加图像.但是,它会接受一个缓冲区.如何从我的CollectionFS文件中获取缓冲区?

到目前为止,我有这样的事情:

var portrait = Portraits.findOne('vS2yFy4gxXdjTtz5d');
readStream = portrait.createReadStream('portraits');
Run Code Online (Sandbox Code Playgroud)

到目前为止,我试过两种方式获取缓冲区:

首先使用dataMan,但最后一个命令永远不会回来:

var dataMan = new DataMan.ReadStream(readStream, portrait.type());
var buffer = Meteor.wrapAsync(Function.prototype.bind(dataMan.getBuffer, dataMan))();
Run Code Online (Sandbox Code Playgroud)

第二次手动缓冲流:

var buffer = new Buffer(0);
readStream.on('readable', function() {
    buffer = Buffer.concat([buffer, readStream.read()]);
});
readStream.on('end', function() {
    console.log(buffer.toString('base64'));
});
Run Code Online (Sandbox Code Playgroud)

这似乎永远不会回来.我仔细检查了我的文档以确保它在那里并且它有一个有效的URL并且当我将URL放入浏览器时图像出现.我错过了什么吗?

javascript node.js meteor node-pdfkit collectionfs

12
推荐指数
1
解决办法
1358
查看次数

如何使用node.js和gm创建pdf的缩略图

我正在使用meteor(基于节点构建)和CollectionCFS(允许我使用gm [GraphicsMagick]进行缩略).

我执行以下操作以自动创建上传图像的缩略图:

new FS.Store.FileSystem("thumbs", {
      transformWrite: function(fileObj, readStream, writeStream) {
        gm(readStream, fileObj.name()).resize('100', '100').stream().pipe(writeStream);
      },
      path: "/Volumes/Public/Thumbs",
    })
Run Code Online (Sandbox Code Playgroud)

transformWrite函数接收readStream(原始图像),修改它并将结果传递给writeStream.我怎么能创建PDF的缩略图?

javascript pdf node.js graphicsmagick meteor

6
推荐指数
1
解决办法
3034
查看次数

如何以编程方式从React Router 4.0中的事件处理程序导航到路由?

事件成功后我需要导航到路线.自从以前的版本以来,这似乎已经改变了 以前我们会这样做:

import { browserHistory } from 'react-router';
...
handleClick(){
  doSomething();
  browserHistory.push('/some/path');
}
Run Code Online (Sandbox Code Playgroud)

javascript router reactjs

5
推荐指数
1
解决办法
4383
查看次数

如何使用CollectionFS和graphicsmagick创建填充流星中某个区域的缩略图

现在我在这里使用代码:https://github.com/CollectionFS/Meteor-CollectionFS#basic-example 假设我想要一个缩略图100x100.

但是说我的图像是400x200,上面的代码将产生100x50的缩略图.

我想在这个例子中发生的是将图像大小调整为200x100,然后剪切为100x100.我怎么做?我怎样才能获得高度和宽度?我知道我可以使用gm的大小函数,但我无法绕过所有的回调.

javascript node.js graphicsmagick meteor

4
推荐指数
1
解决办法
1037
查看次数