有人有使用PHPWord的经验吗?我像使用其他许多模块一样使用Composer安装了它,但是当我运行“基本用法”示例时,什么也没有发生。 (autoloader.php运行正常)。
如果我将query("pdf")
query("epub") // return empty list
private fun query(extension: String):List<String> {
val columnData = MediaStore.Files.FileColumns.DATA
val projection = arrayOf(columnData)
val selection = "${MediaStore.Files.FileColumns.MIME_TYPE}=?"
val targetMimeType = getMimeTypeFromExtension(extension)
val selectionArgs = arrayOf(targetMimeType)
val uri = MediaStore.Files.getContentUri("external")
val cursor = contentResolver.query(uri, projection, selection, selectionArgs, null)
val indexData = cursor.getColumnIndex(columnData)
val list = ArrayList<String>()
while (cursor.moveToNext()) {
list.add(cursor.getString(indexData))
}
return list
}
private fun getMimeTypeFromExtension(extension: String): String? {
var type = MimeTypeMap.getSingleton().getMimeTypeFromExtension(extension)
// some android os doesn't have epub type in map
if (extension.equals("epub") && type == null) {
type = "application/epub+zip"
}
return type
}
更改为$objWriter->save('helloWorld.docx');
,至少可以看到正在发生什么(请参阅下文),但是我什么都没下载DOCX,ODT或HTML文件。
通常Composer会下载任何需求/依赖项,我还需要做其他事情吗?
在Windows上使用Ampps。
答案 0 :(得分:1)
呃,找到了。您需要添加相关的标题才能使其正常工作,不知道为什么所提供的示例未提及此内容:
<?php
require_once("vendor/autoload.php");
$phpWord = new \PhpOffice\PhpWord\PhpWord();
$section = $phpWord->addSection();
$section->addText('Hello World');
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment;filename="HelloWorld.docx"');
$objWriter = \PhpOffice\PhpWord\IOFactory::createWriter($phpWord, 'Word2007');
$objWriter->save('php://output');
?>