ypio/php-microsoft-graph-file-converter

这是一个PHP库,允许您轻松使用Microsoft Graph API将某些文件格式转换为其他文件格式,例如docx转换为pdf。

这个包的规范存储库似乎已经消失,因此该包已被冻结。

1.0.2 2020-07-15 18:10 UTC

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 pdf
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-userhttps://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大小的文件