如何解决在PHP中使用文字打印输出
我正在使用PHP COM来操纵msword。
$word->PrintOut(false,empty,....);
某些参数/变量是“可选的”,但不能设置为null或“”或0
会抛出错误:参数16:类型不匹配(已翻译)
我发现有人在 C#(“空/未设置”)中使用“ System.Reflection.Missing.Value ”
但是,如何在PHP中使用它呢?或类似的东西。
谢谢
我想在带有参数的php中使用 PrintOut 。
https://docs.microsoft.com/en-us/office/vba/api/word.document.printout
解决方法
我又放弃了。
使用vba宏,然后在php中调用,在参数后面加上,
import React,{ useContext,useState,useRef } from "react";
import {
PanGestureHandler,PanGestureHandlerStateChangeEvent,State,} from "react-native-gesture-handler";
import { Animated,Dimensions } from "react-native";
import { RouteProp,useNavigation,useRoute } from "@react-navigation/native";
import { ThemeContext } from "styled-components/native";
import { Feather } from "@expo/vector-icons";
import Wrapper from "../../components/Wrapper";
import Bag from "../../components/Bag";
import CupSize from "../../components/CupSize";
import { useCart } from "../../contexts/cart";
const { height } = Dimensions.get("window");
import {
Main,Container,Content,Header,LeftSide,Button,Heading,ImageBackground,Image,Circle,Title,Description,ProductOptions,PriceRow,PricePrefix,IntegerPart,DecimalPart,Sizes,Small,Medium,Large,AddButton,AddButtonText,PushBar,} from "./styles";
const Product: React.FC = () => {
const navigation = useNavigation();
const { colors } = useContext(ThemeContext);
const { addToCart,clearCart,items } = useCart();
const translateY = useRef(new Animated.Value(0)).current;
let offset = useRef(0).current;
let opened = useRef(false).current;
const animatedEvent = Animated.event(
[
{
nativeEvent: {
translationY: items.length ? translateY : new Animated.Value(0),},],{
useNativeDriver: true,}
);
const { product } = useRoute<RouteProp<ParamList,"Produto">>().params;
const [active,setActive] = useState("large");
const [total,setTotal] = useState(product.prices.large.toFixed(2));
function isActive(size: string) {
return active === size;
}
function handleSelect(size: string) {
setActive(size);
setTotal(product.prices[size].toFixed(2));
}
function splitDecimal(number: string) {
const [integer,decimal] = number.split(".");
return [integer,"." + decimal];
}
function handleAddProduct(item: typeof product) {
Animated.timing(translateY,{
toValue: -85,duration: 350,useNativeDriver: true,}).start(() => {});
const formattedItem = {
id: item.id,title: item.title,image: item.image,size: active,price: total,flavor: item.flavor,amount: 0,};
addToCart(formattedItem);
}
function onHandlerStateChanged(event: PanGestureHandlerStateChangeEvent) {
if (event.nativeEvent.oldState === State.ACTIVE && items.length) {
let { translationY } = event.nativeEvent;
offset += translationY;
if (translationY <= -100 || offset <= -height + 100) {
opened = true;
} else {
opened = false;
translateY.setValue(offset);
translateY.setOffset(0);
}
Animated.timing(translateY,{
toValue: opened ? -height : 0,}).start(() => {
offset = opened ? -height : 0;
translateY.setOffset(offset);
translateY.setValue(0);
});
}
}
return (
<Wrapper>
<Main>
<PanGestureHandler
onGestureEvent={animatedEvent}
onHandlerStateChange={onHandlerStateChanged}
>
<Container
style={{
transform: [
{
translateY: translateY.interpolate({
inputRange: [(height - 30) * -1,0],outputRange: [(height - 30) * -1,extrapolate: "clamp",}),}}
>
<Content
style={{
transform: [
{
translateY: translateY.interpolate({
inputRange: [height * -1,outputRange: [(height / 8) * -1,opacity: translateY.interpolate({
inputRange: [(height / 1.2) * -1,(height / 2) * -1],outputRange: [0.1,1],}}
>
<Header>
<LeftSide>
<Button onPress={() => navigation.goBack()}>
<Feather
name="chevron-left"
size={32}
color={colors.heading}
style={{ marginLeft: -10 }}
/>
</Button>
<Heading>{product.title}</Heading>
</LeftSide>
<Button onPress={() => clearCart()}>
<Feather name="heart" size={26} color={colors.heading} />
</Button>
</Header>
<ImageBackground>
<Image source={product.image} />
<Circle />
</ImageBackground>
<Title>{product.flavor + " " + product.title}</Title>
<Description>{product.description}</Description>
<ProductOptions>
<PriceRow>
<PricePrefix>$ </PricePrefix>
<IntegerPart duration={400}>
{splitDecimal(total)[0]}
</IntegerPart>
<DecimalPart duration={400}>
{splitDecimal(total)[1]}
</DecimalPart>
</PriceRow>
<Sizes>
<Small
active={isActive("small")}
onPress={() => handleSelect("small")}
>
<CupSize
height={30}
active={isActive("small")}
size="small"
/>
</Small>
<Medium
active={isActive("medium")}
onPress={() => handleSelect("medium")}
>
<CupSize
height={34}
active={isActive("medium")}
size="medium"
/>
</Medium>
<Large
active={isActive("large")}
onPress={() => handleSelect("large")}
>
<CupSize
height={38}
active={isActive("large")}
size="large"
/>
</Large>
</Sizes>
</ProductOptions>
<AddButton onPress={() => handleAddProduct(product)}>
<AddButtonText>Add to Bag</AddButtonText>
</AddButton>
</Content>
<PushBar
style={{
opacity: translateY.interpolate({
inputRange: [-100,-85],outputRange: [1,}}
/>
</Container>
</PanGestureHandler>
<Bag
animatedEvent={animatedEvent}
onHandlerStateChanged={onHandlerStateChanged}
translateY={translateY}
/>
</Main>
</Wrapper>
);
};
export default Product;
用文字
$word->run('macro_to_printout',$copies);
比这更多的vba帮助,不要浪费您时间在php com上
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。