ypio / php-microsoft-graph-file-converter
这是一个PHP库,允许您轻松使用Microsoft Graph API将某些文件格式转换为其他文件格式,例如docx转换为pdf。
这个包的规范存储库似乎已经消失,因此该包已被冻结。
1.0.2
2020-07-15 18:10 UTC
Requires
- php: ^7.2.0
- ext-json: *
- guzzlehttp/psr7: ^1.6
- psr/http-client: ^1.0
Requires (Dev)
- guzzlehttp/guzzle: ^7.0
Suggests
- guzzlehttp/guzzle: ^7.0
This package is not auto-updated.
Last update: 2024-04-04 11:14:36 UTC
README
此库允许您使用Microsoft Graph API和microsoft engine转换功能转换文件。
特别适合将Office文件(xlsx,docx...)转换为PDF。
支持输入和输出格式
输入格式 | 输出格式 |
---|---|
doc, docx, epub, eml, htm, html, md, msg, odp, ods, odt, pps, ppsx, ppt, pptx, rtf, tif, tiff, xls, xlsm, xlsx | |
cool, fbx, obj, ply, stl, 3mf | glb |
eml, md, msg | html |
3g2, 3gp, 3gp2, 3gpp, 3mf, ai, arw, asf, avi, bas, bash, bat, bmp, c, cbl, cmd, cool, cpp, cr2, crw, cs, css, csv, cur, dcm, dcm30, dic, dicm, dicom, dng, doc, docx, dwg, eml, epi, eps, epsf, epsi, epub, erf, fbx, fppx, gif, glb, h, hcp, heic, heif, htm, html, ico, icon, java, jfif, jpeg, jpg, js, json, key, log, m2ts, m4a, m4v, markdown, md, mef, mov, movie, mp3, mp4, mp4v, mrw, msg, mts, nef, nrw, numbers, obj, odp, odt, ogg, orf, pages, pano, pdf, pef, php, pict, pl, ply, png, pot, potm, potx, pps, ppsx, ppsxm, ppt, pptm, pptx, ps, ps1, psb, psd, py, raw, rb, rtf, rw1, rw2, sh, sketch, sql, sr2, stl, tif, tiff, ts, txt, vb, webm, wma, wmv, xaml, xbm, xcf, xd, xml, xpm, yaml, yml | jpg |
Http客户端psr-7兼容
您可以使用任何符合psr-7规范的http客户端并实现Psr\Http\Client\ClientInterface
。我推荐使用"guzzlehttp/guzzle": "^7.0"
,这是我在测试中使用的,或者"guzzlehttp/guzzle": "^6.0"
使用方法
安装
composer require ypio/php-microsoft-graph-file-converter
require 'vendor/autoload.php';
需要令牌
首先,您需要在Microsoft身份平台中注册一个应用程序https://docs.microsoft.com/en-us/graph/auth-register-app-v2
然后,根据您的需求有两种不同的方式获取令牌https://docs.microsoft.com/en-us/graph/auth-v2-user或https://docs.microsoft.com/en-us/graph/auth-v2-service
以下是一个如何获取令牌的示例
$guzzle = new Client(); $url = 'https://login.microsoftonline.com/' . $tenantId . '/oauth2/token?api-version=1.0'; $token = json_decode($guzzle->post($url, [ 'form_params' => [ 'client_id' => $clientId, 'client_secret' => $clientSecret, 'resource' => 'https://graph.microsoft.com/', 'grant_type' => 'client_credentials', ] ])->getBody()->getContents()); $accessToken = $token->access_token;
转换文件
$configuration = new Configuration( $accessToken, $user_id, new Client() ); $converter = new FileConverter(); $converter->setConfiguration($configuration); $converter>setFile(file_get_contents('file-sample_100kB.docx')); try { echo $converter->convert(new FormatToPdfFrom(FormatToPdfFrom::DOCX)); } catch (MSGraphException $exception) { var_dump($exception->getResponse()->getBody()->getContents()); }
大小限制
目前仅支持最大4MB大小的文件