Begränsningar och API‑skillnader
Offentliga API-skillnader
Denna lista, med exempel på kodsegment, visar vissa skillnader mellan Aspose.Slides för Java och Aspose.Slides för PHP via Java‑API:er.
Importera bibliotek (paketjämförelser)
Aspose.Slides for Java
import com.aspose.slides.*;
Aspose.Slides for PHP via Java
require_once("Java.inc");
require_once("lib/aspose.slides.php");
use aspose\sldes;
use aspose\sldes\Presentation;
Skapa en ny presentation
Aspose.Slides for Java
Presentation presentation = new Presentation();
Aspose.Slides for PHP via Java
$presentation = new Presentation();
Enums eller konstanter
Aspose.Slides for Java
arc2.getLineFormat().setDashStyle(MsoLineDashStyle.SOLID);
Aspose.Slides for PHP via Java
$arc2->getLineFormat()->setDashStyle(slides\MsoLineDashStyle::SOLID);
Exempel
Aspose.Slides for Java
import com.aspose.slides.ISlide;
import com.aspose.slides.Presentation;
import com.aspose.slides.SaveFormat;
import com.aspose.slides.ShapeType;
public class Test
{
public static void main(String[] args) throws Exception
{
// Skapar ett Presentation-objekt som representerar en presentationsfil
Presentation pres = new Presentation();
try
{
// Hämtar den första bilden
ISlide slide = pres.getSlides().get_Item(0);
// Lägger till en autoshape med typ satt till linje
slide.getShapes().addAutoShape(ShapeType.Line, 50, 150, 300, 0);
pres.save("NewPresentation_out.pptx", SaveFormat.Pptx);
}
finally
{
if (pres != null) pres.dispose();
}
}
}
Aspose.Slides for PHP via Java
<?php
require_once("Java.inc");
require_once("lib/aspose.slides.php");
use aspose\slides;
use aspose\slides\Presentation;
use aspose\slides\ShapeType;
use aspose\slides\SaveFormat;
$pres = new Presentation();
try
{
// Hämtar den första bilden
$slide = $pres->getSlides()->get_Item(0);
// Lägger till en autoshape med typ satt till linje
$slide->getShapes()->addAutoShape(ShapeType::Line, 50, 150, 300, 0);
$pres->save("NewPresentation_out.pptx", SaveFormat::Pptx);
}
finally
{
if (!java_is_null($pres)) $pres->dispose();
}
?>
Övriga begränsningar för Aspose.Slides för PHP via Java‑API jämfört med Aspose.Slides för Java‑API
Aspose.Slides‑namnrymder och de java‑klasser de använder är omslag skapade av PhpJavaBridge ovanpå Java‑klasserna med samma namn från paketet com.aspose.slides.
1. Omslag av Java‑parametrar och argument
Parametrarna och argumenten de returnerar och accepterar är omslag ovanpå Java‑klasserna med samma namn. Endast strängar och numeriska typer konverteras automatiskt. Arrayer, samlingar, byte‑värden och boolean‑värden konverteras inte.
Ett vanligt misstag:
if ($node->isAssistant()) - wrong!
if (java_values($node->isAssistant())) - correct!
2. Utöka Java‑klass och instanceof‑operator
Du kan inte utöka en Java‑klass från en PHP‑klass. Som en lösning kan du implementera sammansättning vid behov. instanceof‑operatorn fungerar endast för en konkret klass. Den fungerar inte för ett gränssnitt eller en föräldraklass.
3. En Java‑array är INTE en PHP‑array
Java‑arrayskapning i PHP:
$Array = new JavaClass("java.lang.reflect.Array");
$Integer = new JavaClass("java.lang.Integer");
$IntegerArray = $Array->newInstance($Integer, 2);
$IntegerArray[0] = 1;
$IntegerArray[1] = 0;
4. En Java‑arrays längd
$data->length; - does NOT work
lösning
$Array = new JavaClass("java.lang.reflect.Array");
$Array->getLength($data);
5. Java‑metoden Files.readAllBytes
$htmlBytes = Files->readAllBytes(Paths->get("embedOle.html")); - does NOT work
lösning
$file = new Java("java.io.File", "embedOle.html");
$Array = new JavaClass("java.lang.reflect.Array");
$Byte = new JavaClass("java.lang.Byte");
$htmlBytes = $Array->newInstance($Byte, $Array->getLength($file));
try {
$dis = new Java("java.io.DataInputStream", new Java("java.io.FileInputStream", $file));
$dis->readFully($htmlBytes);
} finally {
if (!java_is_null($dis)) $dis->close();
}
6. Java‑metoden Files.write
Files->write(new File($path)->toPath(), $fontData, StandardOpenOption::CREATE); - fungerar INTE
lösning
$fstr = new Java("java.io.FileOutputStream", $path);
$Array = new java_class("java.lang.reflect.Array");
try {
$fstr->write($fontData, 0, $Array->getLength($fontData));
} finally {
$fstr->close();
}